I'm a mother of two precious kids and a professional programmer.
我的新書AI 職場超神助手:ChatGPT 與生成式 AI 一鍵搞定工作難題的教材投影片已製作完成
歡迎各位有需要的教師和博碩文化索取教材
Asset catalogs (圖片結構) 在XCode5,因為要支援在不同設備使用不同解析度的圖片,我們可能有很多種不同版本且不同檔名的圖片。這時便可以使用Xcode5的新功能Asset catalogs,它會提供一個介面,讓我們可以將一組圖片設定為一個群組,以及要使用的裝置對象。 如下圖 然後在程式裡使用 來使用圖檔。 這個功能最大的好處就是,圖片不再需要強制要用名稱來代表針對的裝置,如@2x, ~iphone,~ipad或-568h,而可以由使用者來定義那些圖是針對那種裝置的。 假使將發佈目標設定為IOS7,Xcode會將asset catalogs編成二進位檔案,這將可以讓APP的下載時間縮短。 Image slicing 現在XCode新增對圖片的”九宮格縮放”設定,這是為了讓同一張圖片可以針對不同的裝置、不同解析度的狀況下做縮放,而不致讓圖片變型。 下圖是選擇Stretches和Tiles的差異,可以看出,是中間的圖片的拉長方式有所差異。 這個功能可以使圖片可以輕易縮放至任意大小,只需設定center mode以及把素材使用至專案裡就好。 Auto Layout improvements 在iOS7的autoLayout有很大的改變,幾乎所有的設定都可以在storybaord上面來做。差異點大置有: Interface Builder不再會在移動物件後,自動改變constraints,但可以選擇是使用原本設定或是接受新的條件 可以輕易的設定兩個UIView之間的constraints(按control+拖曳)…
記憶體監控相關工具 Scout是一款針對用以監控記憶體狀態的程式,它不但可以監控電腦上面的swf的記憶體狀況,也可以監看使用air開發,運行在手機上的app的記憶體和gpu使用狀況。 在Scout之前,了解swf的記憶體使用狀況有幾個方式 內建的Profile功能 Profile可以監控現有的FLASH裡每一個CLASS占的記憶體比例,預設的設定會忽略AS內建的類別。如果要打開的話,可以選擇選單列裡的Window=>Preferences=>Flash Builder=>Profiler=>Exclusion Filter或是Inclusion Filters去排除或增加要觀察的class種類。 這個工具若是用按的方式執行,則只能針對FLEX本身的專案來做觀察。如果專案架構是外部的SWF檔案,則可以先切換到Profile工作模式(如圖:),然後選擇上方選單列的Profile=>Profile External Application=>New,去選擇要觀察的SWF檔案。 有關這個工具的介紹請見: Flex記憶體監控程式-Profile windows的工作管理員 監控執行緒的執行狀況,缺點是無法仔細的了解是那一個Class造成memory leak。 Hi-ReS-Stats (https://github.com/mrdoob/Hi-ReS-Stats) 很常被見到的一個外掛程式碼,可以簡單的使用 來觀察FPS的運行速度、記憶體的使用狀況是否正常。嵌入後會在畫面上多出如下圖這樣的資訊欄位 Scout (http://gaming.adobe.com/technologies/scout/) 最後就是今天要介紹的Adobe Scout工具,Adobe開發這個,主要是為了當開發者在使用Adobe AIR開發手機APP時,能夠更精準的掌握SWF運行的狀況以及GPU的狀況。因此Adobe官方便提供了這一項免費工具,讓APP開發者可以更仔細的監控效能的狀況。…
Flash Builder裡面大家最廣泛用來監控記憶體使用狀況的工具應該就是Profile了 Profile位於執行鈕的右邊,如下圖: 這邊提供幾個可能你按下Profile結果卻無法正常執行的一些討論串 Flex Builder – Profiler – Can’t run profiler 這個討論串有給一些嘗試的除錯方法 更改port號碼 是否SWF本身有錯誤?PreloadSwf 應位於本地端 換一個瀏覽器! (Preferences/General/Web Browser)也許 Firefox無法支援(我有遇過開不了的問題,我自己是換一個瀏覽器就解決了PS: 原本是firefox換成IE) 指定的瀏覽器是否有安裝debug版本Player? 設定mm.cfg檔案的值 (請看這邊 http://jpauclair.net/2010/02/10/mmcfg-treasure/)…
當事件被發送出來之後。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]的綁定標籤了 因為某次的需求,我需要研究將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中有 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裡內嵌文字有幾種方式 1. FLEX 動態更換中文字型 ( 非嵌入方式 ) 這個請參考下面這篇的教學 http://blog.corausir.org/programing/ausir-777 不過上面的方式 必須以PHP配合 並且空間要支援PHP的EXEC呼叫外部EXE檔的功能 許多空間伺服器並沒有支援這個功能 另外我在測試時也發現一個問題 就是當我要產生的文字過長(ex: 400~500字) 會發生讀取錯誤的問題 2. 直接內嵌字體 (1) 使用css (2)使用as3嵌入 直接嵌入文字會遇到一個很大的問題,就是文字太肥了, 這時,若我們只需要嵌入該字型檔的部份字型,而不需要全部嵌入 就可以設定unicodeRange…
在flex4裡面的spark組件的panel是沒有內建拖動的功能的 因此若我們希望這物件要可以被拖動 我們必須要去自己實做當使用者拖動topGroup的區塊時的拖動動作 範例程式碼如下:
Flex3 image.scaleContent = true; image.maintainAspectRatio = false; 設置了這兩項後就可以任意比例放縮圖片了。 Flex4 scaleMode=”stretch”
首先resize事件是針對該元件大小被縮放時才會產生 所以要在根元件去監聽resize的事件 很必需注意的一點,是flex4的spark元件預設會自動無視超出範圍大小的東西 因此會發現當我們把視窗縮小時, 因為超出的大小被無視了 無法偵聽到resize事件 這時候我們要在根容器上加上 clipAndEnableScrolling=”true”屬性 這個屬性主要是告訴我們要不要自動無視超出的範圍 group的預設值是false 也就是無視他 因此我們要先將 clipAndEnableScrolling設定為true 才可以偵聽到縮小視窗的事件
17年資歷女工程師,專精於動畫、影像辨識以及即時串流程式開發。經常組織活動,邀請優秀的女性分享她們的技術專長,並在眾多場合分享自己的技術知識,也活躍於非營利組織,辦理活動來支持特殊兒及其家庭。期待用技術改變世界。
如果你認同我或想支持我的努力,歡迎請我喝一杯咖啡!讓我更有動力分享知識!