AS2下强烈不建议使用的函数——(包括AS3)_学习

本文探讨了Flash中使用setTimeout和swapDepths时遇到的问题,包括物品消失BUG、影片剪辑复制现象等,并提出了解决方案,建议避免混合使用定时器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 先发句牢骚,新装了flashplayer10 activeX后,居然看不到空间的图片幻灯片显示了。。。

    mix_master的物品消失BUG,仔细研究后是setTimeout和swapDepths两个引起来的,强烈不建议用

   setTimeout和别的函数混用时,一定要随时判断是否在执行setTimeout中,或许凑巧就是因为setTimeout和别的某个函数同时调用 类似的代码导致出莫名的错误。setTimeout本身就是setInterval的扩展,所以建议不要同时出先 setTimeout,setInterval及onEnterFrame事件。。时间的控制也可以用个空影片,用桢来触发也行

 

   swapDepths强烈不建议参数用数字,用数字很容易出现复制的现象。。。见代码

stop()
mc.onPress=function(){
this.startDrag()
this.swapDepths(3500)}

mc.onRelease=mc.onReleaseOutside=function(){
this.stopDrag()
}
mc1.onPress=function(){
this.startDrag()
this.swapDepths(3500)
}
mc1.onRelease=mc1.onReleaseOutside=function(){
this.stopDrag()
}
btn.onPress=function(){
mc._visible=1-mc._visible
mc1._visible=1-mc1._visible
}

这样是没问题的。。。但是当btn为跳转时,按几下就会复制出新的mc或mc1了。。。

btn.onPress=function(){
_root.gotoAndStop(5-_currentframe)
}

用swapDepths(mc)或swapDepths(mc.getDepths)完全没问题。

 

//--------------------------以下为评论---------------------------------------------

设计类对象的depth从-16383,而removeMovieClip方法只对depth大于等于0的mc有效。
影片按桢跳转时,是会默认的把没占位的depth填上的。当remove掉一个mc,但是仍然可以trace得出mc.getDepth()。如果该mc没被remove掉只换了depth的话,那么可能就复制了。。

 

//-----------------------------我的发现-------------------------------------

最近我在做一个类似的功能,发现,setInterval后,MC里面的东东操作后无任何反应,就是无显示,我是用AS3写的,找了半天原因,发现,函数是在运行,但是当我另外点击按钮触发这个函数时,这个函数会两次两次的执行,且后面调用的函数执行正常,不知道是否是复制的结果……

今天看了这个文章,郁闷啊,flash好的地方是:很多东东他会给你自动填充,但是很多东东,结果却不是我们的初衷,望这点小经验,对大家有用!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值