什么时候ENTER_FRAME
停止?
1. removeEventListener(Event.ENTER_FRAME,abc);
2. 发生错误或flash 崩溃
3. 类的实例从阶段
4 中删除。 ?
故事:
我有几个游戏的AS文件,其中一个包含ENTER_FRAME
添加敌人的内容。
它通常工作正常,但有时它不再召唤敌人了。我没有改变任何东西,我只是按 Ctrl+enter 再次测试。
我曾经trace
检查过,并找到了ENTER_FRAME
停靠点。
否则,我放入trace
另一个AS文件ENTER_FRAME
,它继续运行。
levelmanage 类中的另一个ENTER_FRAME
用于测试它是否正常工作,无论是它还是addEventListener(Event.ENTER_FRAME, process);
停止我也没有收到任何错误,我仍然可以通过键移动我的对象。
levelmange 类不连接到任何对象,如果舞台上的任何东西被移除,它不应该停止。
可能是什么问题呢?
下面的代码是停止运行的代码。
package
{
import flash.display.MovieClip;
import flash.events.Event;
import flash.utils.*;
public class levelmanage extends MovieClip
{
var testing:int=0
private var sttage = ninelifes.main;
public var framerate = ninelifes.main.stage.frameRate;
public var levelprocess:Number = 0;
public var levelprocesss:Number = 0;
private var level:int;
public var randomn:Number;
public function levelmanage(levell:int)
{
level = levell;
addEventListener(Event.ENTER_FRAME, process);
}
function process(e:Event)
{
testing+=1
if(testing>200){
testing=0
trace("working")//it don't trace "working"sometimes which means enterframe doesn't going
}
if (levelprocess>levelprocesss)trace(levelprocess);
levelprocesss = levelprocess;
if (levelprocess>=100 && enemy.enemylist.length==0)
{
finish();
return();
}
if (levelprocess<=100 && enemy.enemylist.length<6)
{
switch (level)
{
case 1 :
arrange("cir",0.5);
arrange("oblong",1);
break;
}
}
}
public function arrange(enemyname:String,frequency:Number)
{
randomn = Math.random();
if (randomn<1/frequency/framerate)
{
var theclass:Class = Class(getDefinitionByName(enemyname));
var abcd:*=new theclass();
sttage.addChild(abcd);
trace("enemyadded")
switch (enemyname)
{
case "cir" :
levelprocess += 5;
break;
case "oblong" :
levelprocess += 8;
break;
}
}
}
private function finish()
{
levelprocess=0
trace("finish!");
removeEventListener(Event.ENTER_FRAME,process);//not this one's fault,"finish" does not appear.
sttage.restart();
}
}
}