Re: [問題] 要怎麼延後執行指令

看板Flash作者 (Amosa)時間19年前 (2007/01/03 00:01), 編輯推噓1(101)
留言2則, 1人參與, 最新討論串4/4 (看更多)
※ 引述《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
文章代碼(AID): #15ce7oTd (Flash)
文章代碼(AID): #15ce7oTd (Flash)