快訊!我的新書今天開始可以在天瓏網路書店預購啦!歡迎大家前往訂購!
>>>> AI 職場超神助手:ChatGPT 與生成式 AI 一鍵搞定工作難題 <<<<

Flex3

  • , ,

    AS3的事件傳遞機制(Event、dispatchEvent及addEventListener)

    當事件被發送出來之後。Event一般來説都會有一個Flow。 Flow分三個部分: Capture(捕獲階段) Targeting(目標階段) Bubbling(冒泡階段) 其關係圖如下:(來源為http://www.adobe.com/devnet/actionscript/articles/event_handling_as3.html) 值得一提的是,在FLASH裡,只有和UI相關的物件,會有上圖所示的目標及補獲階段的事件流, 一般像是Timer、Loader事件,是直接進入目標階段,並不會有上圖所示的事件流的流程。 在宣告Event時,也可以先指定事件是否要完整的跑完全部的流程。 宣告事件的語法及及參數意義如下: 參數說明(官方文件) type:String是要發送的事件的識別名稱EX:Event.COMPLETE bubbles:Boolean預設值是false,這個值是用來設定是否要有冒泡階段,如果傳false,代表他不會跑完全部的流程,只會從Capture到target階段就停止。 cancelable:Boolean預設值是false,這個值是用來設定是否這個事件可以被event.preventDefault();取消,如果設定為true的話,代表此事件是可以被取消的(稍候在dispatchEvent會更詳述這部份)。 常用的可以取消的事件有(cancelable為true):   FocusEvent.MOUSE_FOCUS_CHANGE、FocusEvent.KEY_FOCUS_CHANGE、TextEvent.TEXT_INPUT。 而發送事件則是用這一段程式碼: 在發送事件時,要注意,假使今天我們是在STAGE裡面有一個box物件,那當我們用box.dispatchEvent(event); 即使事件是用box發送的,事件還是會從stage > root > box這樣跑。(請見上圖) 假如在建立Event時,bubbles設為true,那在上圖跑的流程為stage >…

  • ,

    Flex裡綁定(Bindable)相關函數及使用方式

    在flex裡,最強大的標籤應該就是[Bindable]的綁定標籤了 因為某次的需求,我需要研究將Bindable綁定至函數 也順便研究了ChangeWatcher和BindingUtils的使用 【BindingUtils】 官方的說明在此: http://help.adobe.com/zh_TW/FlashPlatform/reference/actionscript/3/mx/binding/utils/BindingUtils.html 這是Flex內綁定的工具,裡面有兩個屬性,一個是綁定到函數(bindSetter),另一個則是綁定到某物件的某屬性(bindProperty) 使用範例如下 1. 綁定到函數(bindSetter) 2. 綁定到某物件的某屬性(bindProperty) 【ChangeWatcher】 官方的說明在此: http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/binding/utils/ChangeWatcher.html 因為此次我們要綁定的函數裡是有帶多個參數的,因此BindingUtils的bindSetter便無法使用 這時就需要使用BindingUtils所用的ChangeWatcher來自己做綁定的動作 ChangeWatcher的使用方式如下 根據官方文件watch的傳入的東西依序為”要綁定的物件”、”要綁定的屬性”、”要綁定的函數” 下面便是我根據這些所寫的小範例 MyBindingUtils.as 完整範例檔案可按此下載

  • , ,

    AS3.0中製作直式書寫的方式

    在as3.0中有 FTE可針對文字去測量其寬度、高度等 針對個別的文字去做處理 相關官網的說明可見此 http://help.adobe.com/en_US/ActionScript/3.0_ProgrammingAS3/WS6C0BB8ED-2805-467a-9C71-F9D757F33FB6.html ElementFormat是定義文字的相關屬性(字型、大小、顏色等等) 然後再new一個TextElement設定文字格式和文字內容 再將其放到一個TextBlock裡面 TextBlock裡面則有許多相關的操作函數 可以對個別的文字做旋轉、定位等等 http://livedocs.adobe.com/flex/3_cn/langref/flash/text/engine/TextBlock.html 詳細的手冊說明在上面 裡面的lineRotation將角度設為九十度(TextRotation.ROTATE_90)時 文字就會呈現傳統的中文直式書寫方式呈現 下面的是將文字改為直式文字的範例程式

  • ,

    FLEX不等比縮放圖片

    Flex3 image.scaleContent = true; image.maintainAspectRatio = false; 設置了這兩項後就可以任意比例放縮圖片了。 Flex4 scaleMode=”stretch”

  • Label消除最後的…

    使用mx的label時常常最後莫名其妙的出現…然後要把滑鼠移過去才可以以tip方式顯示出完整內容 這時要使用truncateToFit=”false”去關閉他自動縮排的功能 <mx:Label truncateToFit=”false” id=”lblSawFlopTotal” text=”{status.average_loss}”/>

  • flex組件控制其內容創建時間

    FLEX內的contains容器都會有一個屬性 creationPolicy可以控制其內容創建的時間 一般預設值都是auto 也就是當這個物件第一次被顯示時創建 這樣會有較好的使用者體驗 不過當我們有時使用viewStack 可能當我們在第一頁時 就必須指定第二或第三頁的label內容資料 那我們就必須把 creationPolicy設為all creationPolicy總共有四種可能值 1. <strong>all :</strong> 產生物件時便產生所有的內部元件(即使它還沒有被顯示) 2. <strong>auto:</strong> 被顯示在畫面上時才創建物件 3. <strong>none:</strong> 永不自動創建 當creationPolicy屬性的值為none時,應該明確地指定容器的長和寬。正常情況下,Flex會自動對容器進行比例縮放以使它能夠容納子實例,但因為creationPolicy屬性的值設為none,開始時沒有實例化容器內的子實例,要進行比例縮放是不可能的。如果你沒有明確地調整容器的大小,直到容器內的子實例被實例化後才會自動調整大小以容納子實例。要手動實例化組件,請使用createComponentsFromDescriptors()方法。 4. queued: 根據creationIndex的順序來產生內容物件…

  • , , ,

    ResourceManager動態載入多國語系的實現

    事前準備工作 1.[撰寫Ant編譯時所使用的XML檔] 依照原有的XML去設定自己的SDK的位置,並且寫入要載入的語言檔 2.[設定Ant環境] (a)Help->Software Updates更新flash builder的Ant編輯程式 (b)Windows->Show View->Other->Ant->Ant把視窗叫出來 (c)按Ant編譯視窗最左邊的Add Buildfiles,選擇剛剛寫的xml (d)RUN他 3.[設定要產出的flex專案檔的編譯locale參數] 如果是要中文+英文則為-locale en_US zh_TW,如果少了這個動作在變語言時會發生缺少核心語言CORE檔案的問題。 4. locale檔副檔名是.properties ==================================== 1. flex版本的實現及範例下載 http://www.nbilyk.com/flex-localization-example 2. 為flash builder安裝ant…

  • 在flex3的button內文字增加文字陰影

    http://www.myflexhero.com/share/flex-hero-flex4/flex-hero-components/flex-hero-style/flex-hero-filters/962 上面的連結是教學我們如何在label上增加文字濾鏡 那我們要如何在按鈕上增加文字濾鏡呢? 主要就是要在按鈕生成後抓取裡面的文字元件然後增加濾鏡效果 抓取button的label的方式是下面這行 所以整個函數可能如下

  • Flex Module 多個module的Domain問題和最大化

    最近在弄模組 總是遇到下面這篇文章所說的錯誤 實在搞了半天 看到這篇文章實在很開心 如有人遇到相類似的錯誤 可以參考看看喔 原文網址:http://wangwangliujun.spaces.live.com/blog/cns!550C6565FCCAE686!9407.entry?sa=735791548 需求背景 : 在同一個檔案裡載入多個模組,並且某些類別是跨模組的,會在不同的模組間被使用到, 例如 : DragManager、PopUpManager等等 當把物件從模組a拖到模組b時,會出現下面的錯誤 TypeError: Error #1034: 強制轉換類型失敗:無法將 mx.managers::PopUpManagerImpl@7155ac1 轉換為 mx.managers.IPopUpManager。 問題原因分析: 屬於ModuleLoader shared code…

  • Flex 獲得png透明截圖的問題和解決方法

    代碼大概這樣: 但是得到結果並不透明,於是懷疑encode方法沒有包含Alpha通道。改為第二種方法: 結果仍然沒有透明度信息! 於是仔細讀了手冊每一項找到如下一段話: transparent:Boolean (default = true) — 指定位圖圖像是否支持每個像素具有不同的透明度。默認值為 true(透明)。若要創建完全透明的位圖,請將 transparent 參數的值設置為 true,將 fillColor 參數的值設置為 0x00000000(或設置為 0)。將 transparent 屬性設置為 false 可以略微提升呈現性能。 也就是說,transparent = true…


17年資歷女工程師,專精於動畫、影像辨識以及即時串流程式開發。經常組織活動,邀請優秀的女性分享她們的技術專長,並在眾多場合分享自己的技術知識,也活躍於非營利組織,辦理活動來支持特殊兒及其家庭。期待用技術改變世界。

如果你認同我或想支持我的努力,歡迎請我喝一杯咖啡!讓我更有動力分享知識!