在‘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時,也可以先指定事件是否要完整的跑完全部的流程。 宣告事件的語法及及參數意義如下: var event:Event = new Event(type, bubbles, cancelable); 參數說明(官方文件) type:String是要發送的事件的識別名稱EX:Event.COMPLETE bubbles:Boolean預設值是false,這個值是用來設定是否要有冒泡階段,如果傳false,代表他不會跑完全部的流程,只會從Capture到ta […]

繼續閱讀...

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 因為此次我們要綁定的函數裡是有帶多個參數 […]

繼續閱讀...

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)時 文字就會呈現傳統的中文直式書寫方式呈現 下面的是將文字改為直式文字的範例程式 package { import flash.display.Sprite; impo […]

繼續閱讀...

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,開始時沒有實例化容器內的子實例,要進行比例縮放是不可能的。如果你沒有明確地調整容 […]

繼續閱讀...

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

事前準備工作 1.[撰寫Ant編譯時所使用的XML檔] 依照原有的XML去設定自己的SDK的位置,並且寫入要載入的語言檔 en_US locale/{locale} test src/Resources_en_US.swf true zh_TW locale/{locale} test src/Resources_zh_TW.swf 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 […]

繼續閱讀...

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

http://www.myflexhero.com/share/flex-hero-flex4/flex-hero-components/flex-hero-style/flex-hero-filters/962 上面的連結是教學我們如何在label上增加文字濾鏡 那我們要如何在按鈕上增加文字濾鏡呢? 主要就是要在按鈕生成後抓取裡面的文字元件然後增加濾鏡效果 btn.addEventListener(FlexEvent.CREATION_COMPLETE,addFilter); 抓取button的label的方式是下面這行 ((e.target as Button).getChildAt(1) as TextField).filters = myFilters; 所以整個函數可能如下 import flash.filters.*; //增加文字陰影 private function addFilter(e:Event):void{ var f:DropShadowFilter = new DropShadowFilter(3,30,0×000000,.8); var myFilters […]

繼續閱讀...

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 problem . 當Module中使用managers時(如PopUpManager、DragManager、HistoryManager等)則可能出現這個問題(當application裡在loade […]

繼續閱讀...

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

代碼大概這樣: // displaObject 為需要截圖對像 var pngEncoder:PngEncoder = new PngEncoder(); var bitMapData:BitmpaData = new BitmpaData(displaObject.widht,displaObject.height); bitMapData.draw(displaObject); var imageByteArray:ByteArray = pngEncoder.encode(bitMapData); 但是得到結果並不透明,於是懷疑encode方法沒有包含Alpha通道。改為第二種方法: var bytes:ByteArray = bitmapData.getPixels(new Rectangle(0,0,bitmapData.width,bitmapData.height)); var imageByteArray2:ByteArray = pngEncoder.encodeByteArray(bytes,bitmapData.width,bitmapData.height,tr […]

繼續閱讀...