ActionScript3 Category

進階版舞台縮放比例偵測器

In: ActionScript3, Flash

承上一篇 利用文字欄位偵測舞台縮放比例 想辦法再加強精確度,分別算出垂直與水平縮放比例 這樣就能夠用於所有的 Stage 縮放模式了,包含 Show All, Exact Fit, No Border 並且單獨寫成一個類別,縮放比例變化時用事件方式通知,避免無謂的更新造成效能負擔 使用時必須要將實體放在舞台下,註冊 Change 事件,便能開始偵測縮放比例變化了 StageScaleDetectorAdv Class: package com.ticore.utils { import flash.display.Sprite; import flash.events.Event; import flash.text.TextField;   /** * Stage scale detector class, able to detect concatenated scale change in show all or exact fit mode. * @author Ticore Shih – http://ticore.blogspot.com/ */ [Event(name="change", [...]

利用文字欄位偵測舞台縮放比例

In: ActionScript3, Flash

噗浪上有朋友說 TextField 設定 autoSize 之後放在 MovieClip 內 隨著 MoiveClip scaleX, scaleY 改變 居然會影響到 TextField 的 width 與 textWidth 測試程式如下: package { import flash.display.Sprite; import flash.text.TextField;   public class TextFieldSize extends Sprite { public function TextFieldSize() { var txt:TextField = new TextField(); txt.text = "0"; txt.autoSize = "left";   var sp:Sprite = new Sprite(); sp.addChild(txt);   [...]

最近開始需要用到物理引擎 網路上有好幾套 Flash 物理引擎 比較多人用、資料比較豐富的似乎是從 C 移植過來的 Box2D 同樣是移植過來的版本居然還有分兩種 Box2D Flash AS3 與 Box2D Alchemy WCK Box2D Flash AS3 整個是純 AS3 寫成的 Box2D Alchemy WCK 是直接拿 Box2D C 程式,透過 Alchemy 編譯為 Flash SWC 然後加上其它 AS3 Wrapper Class 來的 兩種版本大略使用過之後發現 Box2D Alchemy WCK 有許多優點 執行效能較佳 與 Box2D 原版 API 接近,假如原版更新了,也可以自己架設 Alchemy 更新到 Flash 版 提供了很多輔助類別可以使用,譬如能夠作到各種形狀重力場等 與 [...]

Flash 影格預置 Video 抗鋸齒功能

In: ActionScript3, Adobe, Flash

之前同事問到嵌入的 Video 放在舞台上,旋轉之後會出現鋸齒的問題 AS3 的 Video 物件有提供 smoothing 屬性 打開就會有抗鋸齒效果了 可是 Flash IDE 介面上對於預先放在時間軸的 Video 物件卻沒有提供這個選項 最簡單的解決方式就是替 Video 實體命名 然後影格上直接用 AS3 對該實體設定 smoothing = true 了 假如很多地方都要用到怎麼辦,那只好一個一個設了 於是想能不能用程式的方法,一次解決 Document 下所有的 Video? 後來發現有事件可以用 只要對 stage 註冊 added to stage 事件 就可欄截到所有加入舞台的物件… 以下程式加到影格 1 便能讓所有舞台上的 Video 都自動打開 smoothing 了 影格 1 下的 Video 除外,由於時間差的關係,來不及攔截到 import flash.events.Event; import [...]

有人問 Flex 4, 4.5 Spark 的 Download Progress Bar 不出現的問題 Adobe 討論板上也有人問 原因大略是因為 Flex 4, 4.5 提高了出現的門檻 原本 MX 版 Progress Bar 是要超過 300ms 才會出現 Spark 版 Progress Bar 要超過 700ms 且下載進度未超過 50% 才會出現 條件相當嚴苛,導致一般的小 Flex App 都看不到下載進度條了 解決的方式不難,自己繼承 SparkDownloadProgressBar 並覆寫 showDisplayForDownloading package { import flash.events.ProgressEvent; import mx.preloaders.SparkDownloadProgressBar;   public class MySparkDownloadProgressBar extends SparkDownloadProgressBar { [...]