Flash 板


LINE

: private function initial():void : { : for (var i:Number = 1; i <= 3; i++) : { : lo = new Loader(); : re = new URLRequest("bmp/"+i+".jpg"); : this.lo.load(re); : this.addChild(lo); : this._tween = new Tween(lo,"alpha",Strong.easeOut,0,1.0,3,true); 因为 _tween 宣告成全域变数的关系,所以回圈跑完 _tween 只会指向 i=3 的那次 Tween : this._tween.addEventListener(TweenEvent.MOTION_FINISH,_mf); : } : return; : } : function _mf(event:TweenEvent):void : { : trace("finish"); : this._tween.removeEventListener(TweenEvent.MOTION_FINISH,this._mf); : this._tween = null; 如上面所说,不管这是哪一个 Tween 触发的 event 都只会把 i=3 的 Tween 移除事件 所以当有第二个 Tween 完成的时候 _tween 已经是 null 了,会跳错误 : this.lo.unload(); : return; : } : } : } 还有一点是你三个 Tween 同时 start,没有时间差阿 ... 参考一下我帮你修改过後的,应该满好懂的 public class main extends MovieClip { private var lo:Loader; private var re:URLRequest; private var arr:Array; public function main() { arr = []; for (var i:Number = 1; i <= 3; i++) { addTween(i); } arr[0].start(); } private function addTween(i:int):void { lo = new Loader(); re = new URLRequest("/bmp/" + i + ".jpg"); lo.load(re); lo.alpha = 0; addChild(lo); function onFinish(e:TweenEvent):void { _tween.removeEventListener(TweenEvent.MOTION_FINISH, onFinish); _tween = null; arr.shift(); if (arr.length) { arr[0].start(); } } var _tween = new Tween(lo, "alpha", Strong.easeOut, 0, 1.0, 3, true); _tween.addEventListener(TweenEvent.MOTION_FINISH, onFinish); _tween.stop(); // tween 预设好像会自己 start!? arr.push(_tween); } } --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 122.121.204.118
1F:推 cjcat2266:耶...好像会自己start()没错,太久没用忘记了XD 04/16 16:17
2F:→ cjcat2266:同时也可以参考 3 > 7 > 3 > 1 04/16 16:18
3F:推 ninimiga:感谢感谢,测完後再回报 04/16 20:58
4F:推 ninimiga:经过测试,发现for回圈跑太快,其实是有执行addEventL... 04/17 00:07
5F:推 cjcat2266:"for回圈跑太快" 的意思是? 04/17 01:11
6F:推 ninimiga:Tween还在监听是否完成时,回圈就跑到下一个,所以回圈完 04/17 01:19
7F:→ ninimiga:成後,其实Tween还没有finish,自然不会执行到finish那段 04/17 01:20
8F:→ ninimiga:还在思考如何解决,想到再跟大家说 04/17 01:21
看你的想法 是想要等前一个tween完成後再执行下一个 addTween()对吗? 如果是这样可以用 timer,每三秒钟执行一次 addTween,然後把stop()拿掉 不过感觉有点多此一举 另外就算回圈跑的再快再慢,onFinish都会执行的,因为已经有侦听 Event了 你可以在 onFinish里面加个全域变数 count测测看,一定会执行到三次的 补上时间轴帮助你理解: 执行三次addTween() → arr[0]的tween开始执行 → 三秒後 → 第一个 tween完成,从arr内移除,执行下一个 tween → 三秒後 → 第二个 tween完成,从arr内移除,执行下一个 tween → 三秒後 → 第三个 tween完成,从arr内移除,arr内没东西了,结束 ※ 编辑: jeaby 来自: 118.171.118.34 (04/17 10:31)
9F:推 ninimiga:^^一开始我也是像您这麽想的...不过,for回圈就像定期出 04/17 10:43
10F:→ ninimiga:现的公车,addEventListener就像是注意公车来的乘客 04/17 10:44
11F:推 ninimiga:当乘客还在远方看着公车靠近要举手时,末班车早就跑走了 04/17 10:46
12F:→ ninimiga:我把for拿掉,才发现还真是点点点>_<,我会听您的意见 04/17 10:48
13F:→ ninimiga:试试Timer或EnterFrame,不过可能是明後天了^^谢谢!! 04/17 10:49
14F:推 bujinron:习惯用EnterFrame同步後就很少用For弄视觉类的东西 04/18 07:32
15F:→ bujinron:因为EnterFrame比较能掌握时间,然後建议不要用Timer 04/18 07:33
16F:→ bujinron:如果你拿Timer做过码表之类的就知道为什麽了 04/18 07:33







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Boy-Girl站内搜寻

TOP