Flash ActionScript3 殿堂之路5

重點筆記
p04-02函式語句vs.函式運算式
<<語法>>
函式語句
function 函式名 (
參數1名稱:類型=預設值,參數2…):回傳值型別{
}

函數運算式
var 函數名:Function=function(
參數1名稱:類型=預設值,參數2…):回傳值型別{
}

不同點:
  1. 函式語句不論定義在那裡,都會先compiler,因此到處都可使用,而函數運算式在使用前要先定義好
  2. 函式語句的this關鍵字指向目前函數定義的區域;函數運算式隨函數附著的物件不同而隨之改變。
ex:
var num:int=3;
function A(){
trace (num);
trace (this.num);
trace (this);
}
var B:Function=function(){
trace (num);
trace (this.num);
trace (this);
}
var obj:Object={num:300};
obj.a=A;
obj.b=B;

A();
B();
obj.a();
obj.b();
前面三個的結果為:
3
3
[object MainTimeline]
obj.b();的結果為:
3
300
[object MainTimeline]

p04-06參數資訊:arguments物件
arguments.length==>回傳參數的個數

Random()值轉正整數

temp=Math.floor(Math.random()*範圍值);
若範圍值寫6,則temp會出現的值為 0~5

SharedObject的用法

1.先在畫面拉一個輸入文字,取名為 input_txt
2.隨便做一個按鈕,取名為 save_btn
3.在主時間軸貼上程式碼:

AS2.0
var so:SharedObject=SharedObject.getLocal("mySaveData", "/");
if(so.data.mySaveData!=null){
input_txt.text=so.data.mySaveData;
}

save_btn.onPress=function(){
so.data.mySaveData = input_txt.text;
so.flush();
}

AS3.0
var so:SharedObject=SharedObject.getLocal("mySaveData","/");
if(so.data.mySaveData!=null){
input_txt.text= so.data.mySaveData;
}

save_btn.addEventListener(MouseEvent.CLICK, function(e:MouseEvent){
so.data.mySaveData = input_txt.text;
so.flush();
});

//---------------------------------------------------------------------------------------------------------
檔案位置:
var so:SharedObject=SharedObject.getLocal("mySaveData", "/");
檔案在:
C:\Documents and Settings\登入者名稱\Application Data\Macromedia\Flash Player\#SharedObjects\xxxxxx\localhost
檔名:mySaveData

如果是寫var so:SharedObject=SharedObject.getLocal("fun/mySaveData", "/");
檔案會在:
C:\Documents and Settings\登入者名稱\Application Data\Macromedia\Flash Player\#SharedObjects\xxxxxx\localhost\#fun
檔名:mySaveData

http://tw.knowledge.yahoo.com/question/question?qid=1508082402461
http://tw.knowledge.yahoo.com/question/question?qid=1608083004985
http://tw.knowledge.yahoo.com/question/question?qid=1609071005840

Flash作品:雙食蛇 單人版


一個人要控制兩條蛇,東西不能亂吃喔!哈!左右腦共用。

遊戲Bug:
1.因為增加食物的函式不是標準的演算法, 把遊戲畫面填滿說不定會出現BUG...還沒做測試。
以下為偷懶的演算法:
do{
tempx=Math.floor(Math.random()*backgroundX);
tempy=Math.floor(Math.random()*backgroundY);
}while(map[tempx][tempy].currentLabel!="empty");
照道理是不能這樣寫啦…東西滿的話,就會跑無限迴圈了。不過據說這種演算法速度最快~
2.開始按鈕的圖層不是最高層,會被程式產生的蛇蓋住,到時重新開始時,可能會按不到…遊戲說明我倒是已經改好了。
3.蛇的前進速度,我還沒想到要什麼時候加速比較合適,加速的進行方式太多了。 ex:吃到東西加速、到達一定分數後加速、玩家自己控制(選擇的速度愈快,每吃一個食物分數就加得愈高)...方法太多了,隨便想想就3個,要用什麼好呢?


孔子說~

子曰:「譬如為山,未成一簣,止,吾止也!譬如平地,雖覆一簣,進,吾往也!」
我在準備證照最難過的時候,突然想起這句話。有人說準備證照很簡單,也許是吧,考過後真的覺得很簡單,但對我而言最難過的是在準備考試時那種不安的心情,你到底能不能通過?證照的考試範圍那麼大,你唸到重點了嗎?還是你唸到的都是廢話?看到不懂的章節,悶著頭看,還是看不懂,怎麼辦?
有時真的覺得那一陣子像地獄,白天工作,晚上自己在那邊唸,尤其東西全部是自己準備,沒補習、周遭也沒人好問。
這時靜下心就會想到這句話,真的給我了一個定心丸,你一但放棄了,就什麼都沒有了,之前的努力也都付諸流水,咬著牙關前進,才是唯一的道路。

考完後就開始感謝國中的古老師了,以前被逼著唸論語,一本全部都背起來,問我現在記得多少?老實說我也只記得這一篇,其它都忘光光,但幸好有唸,不然考不到吧,也許這是人生意想不到的轉捩點!?
Category: 0 意見

Box下載說明


右邊的Box放了一些我的作品,下載方式參左邊的圖片。
若上面出現"Please Wait"的字樣,表示正在下載清單中,稍等一下就好了。
若出現一片空白,什麼字都沒有,可能你的瀏覽器不支援Flash,有需要的話,再寫信給我,我再寄給您。
knowledge.temp@yahoo.com.tw
Category: 0 意見

Flash作品:貪食蛇 雙人版

貪食蛇v02.swf是單人遊戲,貪食蛇v05可以雙人競爭!!


貪食蛇v05.swf

20100820 v05更新:
1.若蛇頭對撞,則有一隻會不見--已修正 (感謝scu1012提供bug.)
2.一局結束後,下局開始時,分數仍是上局的分數。
3.遊戲中有時會發生作者資訊擋在遊戲畫面的狀況。