Flex Category

Flex SDK Security Update

In: ActionScript3, Flex

昨天突然看到 Flex SDK 居然大幅度發布安全性更新 不是都要捐給 Apache 了嗎? 從 3.0.0 一路到 4.5.1 全部都有更新 而最新的 4.6 則不受影響,可以參考以下文章 Security update available for Adobe Flex SDK (APSB11-25) Flex Security Issue APSB11-25 只要版號後面加上 A 的都是安全更新過的,e.g. Flex 4.5.1.21328A 另外 Adobe 也提供了補救工具 APSB11_25_Patch_Tool.air 可以直接對既有的 SWF 進行偵測並修復 詳細使用請參考上面連結說明 很好奇動作這麼大,到底是什麼樣的漏洞? 根據文件說明找了原始碼 mx.modules.ModuleManager.as 內的 inner class ModuleInfo 的 load() function public function load(applicationDomain:ApplicationDomain = null, [...]

自訂 Flex 滑鼠游標實體

In: ActionScript3, Flex

遇到一個問題是,想要自訂 Flex App 的 Cursor 可是又要能存取 Cursor 實體 以便做其他的動態控制 可是 Flex CursorManager 基本上是不允許這樣做的 只能以 Class 方式設定 Cursor,也無法存取到目前 Cursor 實體 網路上有人提過解決方式 Jesse Warden – Making a Cooler Cursor in Flex 可是他是藉由 Hack CursorManager 方式做到 實際用 Flex 4.5 測試,發現只要將編譯模式從 Merged into code 改為 RSL 這個方法就失效了,只好自行另外想辦法 觀察 StyleManager 實作,發現 Cursor 實體是放在 systemManager.cursorChildren > cursorHolder 內 於是想到可以自行指定空的 Sprite 作為 [...]

Flex App 直接引用外部 Module 的問題

In: ActionScript3, Flex

最近同事遇到一個 Flex 問題,只要 Module 內放了其它組件 執行就會出現各種奇怪 Error 後來發現是因為在 Main Application 直接引用編譯到 Module Class 然後又企圖用 ModuleLoader 再載入一次相同的 Module SWF 當然這樣做是錯誤的範例,Flash Builder 也會給予警告 Warning: Mod is a module or application that is directly referenced. This will cause Mod and all of its dependencies to be linked in with MainApp. Using an interface is the recommended practice to [...]

RobotLegs Module 開發上的問題

In: ActionScript3, Flash, Flex

最近開始使用 RobotLegs,覺得還蠻好用的,可以少寫很多程式碼 雖然有一些效能上的問題,但可以透過自己管理創建/銷毀時機方式避開 當想要把它用在 Flex Module 開發時,又遇到了一些問題 找不到任何良好的 RobotLegs Modular 開發範例 雖然有人寫了 Modular Utilities,且有提供範例 ModularDoodads 但是坦白說,寫的很糟糕 Module 與主程式綁在一起,無法拆成獨立外部檔案 又有人基於 Modular Utilities 寫了另一個範例 DynModules 終於將 Module 拆成外部檔案了 不過仔細一看,原來它 Hard Code 硬將 Module 載入到 ApplicationDomain.currentDomain 表示 Module 永遠無法卸載,又是另一個骯髒的範例 於是只好自己想辦法解決這問題 我的初步需求很簡單,Module 並不需要與主程式共用 Context or Injector Module 有自己獨立的 Context,只是與主程式共用 RobotLegs Lib. 而已 僅僅只是這樣都遇到了問題 以下便是簡化的測試程式: Main.mxml <?xml version="1.0" encoding="utf-8"?> <s:Application [...]

Spark 多重欄位排序的 DataGrid

In: ActionScript3, Flex

Flex 4.5 Spark 雖然提供了 DataGrid 可是它沒有像 mx:AdvancedDataGrid 那樣支援多 Column 排序功能 看到 Adobe Cookbooks – How do I perform a multicolumn sort in a Spark DataGrid? 有人提供,可是那幾乎是寫死在組件外部 不能讓 User 自己選擇排序欄位 所以我想辦法繼承 Spark DataGrid,複寫 columnHeaderGroup_clickHandler 函式 當 User 在 Column Header 同時按下 Ctrl + Mouse Left Click 時 提供多重 Column 排序的功能 MultiColSortableDataGrid.as package { import mx.collections.ICollectionView; import [...]