顯示具有 Flash 標籤的文章。 顯示所有文章
顯示具有 Flash 標籤的文章。 顯示所有文章

星期二, 5月 03, 2011

星期一, 8月 09, 2010

Flash Scene - 多場景互動

在開發flash 的時候,用多個場景可以讓版面和時間軸保持乾乾淨淨~

可是今天發現不同場景互相呼叫 function 的時候,被呼叫的 function 會跑到呼叫者的場景
而不同場景上的元件是不能互相存取的! (這個部分是經驗而已,有誤請不吝指正:D)

以下舉個例子:

scene1 - function1 { call mc1; call function2; }
              \ mc1

scene2 - function2 { call mc2; }
              \ mc2

依此例來討論,function1 呼叫 function2 的時候, function2 會在 scene1 中被執行
如此一來就會發生錯誤,因為 scene1 中並沒有 mc2


解決辦法:

在 function2 第一行插入 gotoAndStop(1, "scene2");
則會先跳轉到 scene2 後才會執行接下來的程式碼 就不會出現錯誤



另外附上從 ActionScript 3.0 語言和組件參考 中列出場景的範例

for (var i:uint = 0; i < MovieClip(root).scenes.length; i++)
 {
    var scene:Scene = MovieClip(root).scenes[i];
    trace("scene " + scene.name + ": " + scene.numFrames + " frames");
}

星期二, 4月 13, 2010

水草漂動 / 樹葉搖晃 的效果 DisplacementMapFilter, perlinNoise

Perlin noise是一種產生雜訊點陣圖的一種演算法
是由Ken Perlin所發明的
原本的目的是為了1982年的電影Tron(電子世界爭霸戰)所開發的演算法
這種雜訊是用來模擬火焰、煙霧、水波的效果
Ken Perlin因為開發了這個演算法而得到了1997年的奧斯卡技術成就獎
Perlin noise原本是產生2D雜訊,但是隨著產業界的需求之增加
後來出現了3D版本的Perlin noise,可以模擬3D的火焰等特效

通常要模擬水波、飄動的特效
會使用Perlin noise搭配所謂的displacement map特效
也就是Flash裡面的DisplacementMapFilter
這個特效是用來扭曲變形一張圖用的
所以應該可以達到你說的水草飄動效果(其實是扭曲)

要使用displacement map特效需要兩張尺寸一樣的圖
第一張是原圖,第二張是扭曲參考圖
而這張參考圖我們要使用Perlin noise

轉載自 #19OYjs7P (Flash) [ptt.cc] cjcat2266


以下是西街貓(cjcat2266)附上的參考
var bmpd:BitmapData = new BitmapData(180, 280);
var bmp:Bitmap = new Bitmap(bmpd);
bmp.x = 180;
addChild(bmp);

var dmf:DisplacementMapFilter = new DisplacementMapFilter(bmpd, new Point(), 1, 2, 20, 20, "clamp");

addEventListener(Event.ENTER_FRAME, update);
function update(e:Event):void
{
bmpd.perlinNoise(200, 200, 2, 0, false, false, 3, false, [new Point(0, getTimer() / 50), new Point(20 * Math.sin(getTimer() / 1000), getTimer() / 20)]);
sw2_mc.filters = [dmf];
}





KeyWord: DisplacementMapFilter, perlinNoise

參考資料
#19OYjs7P (Flash) [ptt.cc] cjcat2266
#19OZ7PwE (Flash) [ptt.cc] cjcat2266

星期六, 3月 20, 2010

FlashDevelop的編碼預設應該不是UTF8的

想改的話就是:
tools -> Programming settings ->
Default CodePage :UTF8
Fallback CodePage :UTF8 (這個很重要,不然看起來會變亂碼)

FlashDevelop的版型

最近突然覺得FlashDevelop一開始的Title資訊不夠多
要怎麼改呢?

開啟設定資料夾: Tools -> Application Files
Templates -> AS3.fdt

裡面就可以改版型了!
變數的部分在: Tools -> Custom Arguments 裡面增加

星期六, 2月 27, 2010

ActionScript 3.0 中的 stage, root, MainTimeline

學了不算短的Flash還是沒有很瞭解stage, root, MainTimeline的差異

swf.com.tw - ActionScript 3.0里的stage(舞台), root和MainTimeline(主時間軸)
這篇的解釋非常詳細,也讓我很清楚的瞭解其中的差異

另外也做了個小實驗,發現Flash和Flex指的是不同的東西:

flash 下
trace(this, this.root, this.stage, root, stage, this==this.root, this.root == root, this.stage == stage);
[object Story] [object Story] [object Stage] [object Story] [object Stage] true true true


flash builder 4 下
trace(this, this.root, this.stage, root, stage, this==this.root, this.root == root, this.stage == stage);
WebometricsRanking null null null null false true true

Flash應用程序的內存管理機制和優化方法

Check out this SlideShare Presentation:

星期一, 2月 15, 2010

ActionScript3.0 中的事件流(Event)

說要記錄一下自己對AS3事件的心得
可是拖了好久..想寫什麼大概也忘了

手邊有一些資料,姑且記錄一下吧~

以下節錄自SILK ROUTE - AS3筆記-事件流(event flow)
寫的很棒,非常建議先讀過

星期四, 2月 04, 2010

AS3 的 Dictionary Class

一開始還有點搞不懂Dictionary到底是什麼
後來發現她就跟Object一樣是hash表

不過有點不一樣的是,Dictionary可以用Object當作Key..
實在太神奇了XD


關聯數組有時候也稱為「哈希」或「映射」,它使用「鍵」而非數字索引來組織存儲的值。關聯數組中的每個鍵都是用於訪問一個存儲值的唯一字符串。關聯數組為 Object 類的實例,也就是說每個鍵都與一個屬性名稱對應。關聯數組是鍵和值對的無序集合。在代碼中,不應期望關聯數組的鍵按特定的順序排列。
ActionScript 3.0 中引入了名為「Dictionary」的高級關聯數組。字典是 flash.utils 包中 Dictionary 類的實例,使用的鍵可以為任意數據類型,但通常為 Object 類的實例。換言之,字典的鍵不侷限於 String 類型的值。
as3,Dictionary,關聯數組


節錄Kimo Chung's AS3 Playground - 秘技: 用Sprtie & Dictionary 熷加自定的variables 而不改變Sprite 的結構的例子


使用Dictionary 和Array 有何分別呢?
Array 使用object.toString() 作為index, 因此若果有兩個Sprite 的名稱相同, 會使用同一格


var myPictureIndexDict = new Dictionary;
var myPictureIndexArray = new Array;

var a = new Sprite;
a.name = "myName";
myPictureIndexDict[a] = 1;
myPictureIndexArray[a] = 1;

var b = new Sprite;
b.name = "myName";
myPictureIndexDict[b] = 2;
myPictureIndexArray[b] = 2;

trace(myPictureIndexDict[a]); //output: 1
trace(myPictureIndexArray[a]); //output: 2


延伸閱讀
Ticore's Blog - AS3 Dictionary 居然無法用 QName 當 Key

星期二, 2月 02, 2010

stage.scaleMode 的差別

scaleMode屬性
scaleMode:String  [讀寫]
語言版本: ActionScript 3.0
執行階段版本: AIR 1.0 Flash Player 9

星期六, 1月 30, 2010

偽造已存在的事件

在這篇文章flash 自定義事件有說明了怎麼自定義事件。
 那如果要送出原本內建的事件要怎麼辦呢?

星期一, 1月 18, 2010

Gimbal Lock 萬向鎖

所謂gimbal lock,數學上來說, 就是使用Euler轉動系統所存在的問題.

星期四, 1月 07, 2010

bulk-loader

BulkLoader是一個不錯且使用簡單的開源加載類,其能實現對不同類型文件的加載進行管理。

星期一, 1月 04, 2010

圖片點陣化效果

用 BitmapData 配合 Matrix 的 scale 繪製小 size 的點陣圖;
再把 attach 這張圖的 MovieClip 給拉大。

milkmidi老師的Demo

引用自
馬克.凡 の ActionScript 學習筆記

星期日, 1月 03, 2010

1180: 呼叫可能未定義的方法 addFrameScript。

在寫AS3的發佈後有時會跳出1180: 呼叫可能未定義的方法 addFrameScript。

星期四, 12月 31, 2009

flash 文字樣式

動態文字:動態文字包括從外部來源 (例如文字檔案、XML 檔案,或甚至包括遠端網路服務) 載入的內容。

輸入文字:輸入文字是指使用者輸入的任何文字,或是使用者可以編輯的動態文字。您可以設定樣式表來格式化輸入的文字,或使用 flash.text.TextFormat 類別為輸入內容的文字欄位指定屬性。如需詳細資訊,請參閱擷取文字輸入。

靜態文字:只能使用編寫工具才能建立靜態文字。您不能使用 ActionScript 3.0 來建立靜態文字實體,但是您可以使用 ActionScript 類別 (如 StaticText 和 TextSnapshot) 來操作現有的靜態文字實體。如需詳細資訊,請參閱使用靜態文字。