Re: [問題] 要怎麼延後執行指令
※ 引述《jonathanmeow (喵)》之銘言:
: ※ 引述《jonathanmeow (喵)》之銘言:
: : → jonathanmeow:改_root["pic"+pic_check[1]].gotoAndPlay(1);也行耶 01/02 22:58
: : → jonathanmeow:奇怪明明前幾天測試用_root[]的方式就不可以.... 01/02 22:58
: : 推 jonathanmeow:喔賽勒 終於知道為什麼了.... 01/02 23:01
: 回文來說吧
: 原po的this._parent[]是寫在該物件裡面
: 也就是上面他有指定按下去的事件是執行翻牌以及測試的程式
: 擷取一段下來像下面這樣
: on(press){
: xxxxxxxxxxxxxxxxxxxxxxx
: xxxxxxxxxxxxxxxxxxxx
: xxxxxxxxxxxxxxxxxxxxxxxxxx
: var cleckshow;
: cleckshow = setInterval(function () {
: gotoAndStop(1);
: this._parent["pic"+pic_check[1]].gotoAndPlay(1);
: clearInterval(cleckshow);
: }, 1000);
: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
: }
: 這裡怎麼trace出pic_check[1]都是正確的值
: 可是卻不能讓"pic"+pic_check[1]回到影格1
: 之後發現
: 由於這種on(press)寫法的問題
: "this"這個東西好像就不需要??
: 因此 我只要告訴他"上一層"中的"pic"+pic_check[1]回到第一影格既可
: 所以勒
: 只要把this._parent["pic"+pic_check[1]].gotoAndPlay(1);
: 改成
: _parent["pic"+pic_check[1]].gotoAndPlay(1);
由於MoiveClip extends Object 與 Button extends Object
所以on([events])中的this皆代表自己這個物件 ,
又由於 setInterval(只是個全域函數) 中所call back的function 是在
自己這個物件中宣告的,所以會造成function中的this反而是指向
undefined(因為這個function是屬於區域函數),所以undefined的老爸
就不知道是誰摟
: 就ok的啦!
: 唉唷喂呀
: 真是太奇妙了....
: 我也常常卡程式卡一天 結果沒想到是那麼簡單的東西 :)
: ps: 檢驗兩張牌有沒有一樣
: 你只要用你寫入兩張牌的號碼的setpic[8] 和 setpic[9]來判斷就可以了
: 當setpic[8] == setpic[9] 那就是兩張牌都一樣
: 這可能會比較簡潔 參考看看 :)
: 另外 前面隨機跑數字的部份 你可以參考之前我的和a大的文章
: 有幾篇是在講這種自訂函數
: 我覺得使用這種自訂函數簡單多了(以前我也跟你一樣這樣用for去跑)
: 有了自訂函數之後 就省很多麻煩
: 加油吧 :)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 210.85.136.5
推
01/03 07:22, , 1F
01/03 07:22, 1F
→
01/03 07:23, , 2F
01/03 07:23, 2F
討論串 (同標題文章)
Flash 近期熱門文章
PTT數位生活區 即時熱門文章