作者amosa (Amosa)
看板Flash
标题Re: [问题] 要怎麽延後执行指令
时间Wed Jan 3 00:03:55 2007
※ 引述《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
1F:推 jonathanmeow:受教受教 原来是这样的 知道怎麽修却不知道啥意思 01/03 07:22
2F:→ jonathanmeow:听君一席话 真是获益良多 :) 01/03 07:23