AS3影片剪辑逐个随机播放
functionenemyRandom(){enemyArr=newArray();enemyArr.push(map.enemy1,map.enemy2,map.ene...
function enemyRandom() {
enemyArr=new Array();
enemyArr.push(map.enemy1,map.enemy2,map.enemy3,map.enemy4,map.enemy5);
arrLength=enemyArr.length-1;
arrIndex=Math.round(Math.random()*arrLength);
enemyArr[arrIndex].gotoAndPlay(2);
}
直接调用enemyRandom()只能播放一次 怎样让影片剪辑播放完后 然后又随机出现一个 这样反复循环 ? 展开
enemyArr=new Array();
enemyArr.push(map.enemy1,map.enemy2,map.enemy3,map.enemy4,map.enemy5);
arrLength=enemyArr.length-1;
arrIndex=Math.round(Math.random()*arrLength);
enemyArr[arrIndex].gotoAndPlay(2);
}
直接调用enemyRandom()只能播放一次 怎样让影片剪辑播放完后 然后又随机出现一个 这样反复循环 ? 展开
2个回答
展开全部
function enemyRandom() {
enemyArr=new Array();
enemyArr.push(map.enemy1,map.enemy2,map.enemy3,map.enemy4,map.enemy5);
arrLength=enemyArr.length-1;
arrIndex=Math.round(Math.random()*arrLength);
enemyArr[arrIndex].gotoAndPlay(2);
enemyArr[arrIndex].addEventListener(Event.ENTER_FRAME,CheckFrame);
}
function CheckFrame(e:Event):void
{
var obj:Object=e.target;
if(obj.currentFrame==obj.totalFrames)
{
obj.removeEventListener(Event.ENTER_FRAME,CheckFrame);
enemyRandom()
}
}
enemyArr=new Array();
enemyArr.push(map.enemy1,map.enemy2,map.enemy3,map.enemy4,map.enemy5);
arrLength=enemyArr.length-1;
arrIndex=Math.round(Math.random()*arrLength);
enemyArr[arrIndex].gotoAndPlay(2);
enemyArr[arrIndex].addEventListener(Event.ENTER_FRAME,CheckFrame);
}
function CheckFrame(e:Event):void
{
var obj:Object=e.target;
if(obj.currentFrame==obj.totalFrames)
{
obj.removeEventListener(Event.ENTER_FRAME,CheckFrame);
enemyRandom()
}
}
追问
3Q 再问下哦 我原先做的数组中放的是几组坐标点,通过addChild()方法加载对象 随机在几个坐标点中出现 然后也用Event事件 不过没用加载的对象来侦听 在 if( ){ }中我多加了句 removeChild() 和null来清除对象 也可以正常播 可是在测试时播放的越久 鼠标移动就越卡 搞不明白? 还有obj数据类型为什么可以是Object 不是只有MovieClip才有currentFrame属性吗?
追答
帧频事件用完后一定要去掉,用removeEventListener,否则还是会一直执行的。Object对象可以是任何东西,你可以到帮助里看一下,MovieClip也是它的一个子类/
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询