我真的很困惑。我让代码完美无缺地工作,然后又回去尝试了一些东西,现在它无法正常工作。我现在似乎无法弄明白,结果我开始变得非常沮丧。我似乎也没有收到任何错误。
我有两个文件Gameindex和一个外部swf,这是我在gameindex上导入的级别。我希望在调用事件时移动到时间轴上的其他位置,但截至目前调用该事件不起作用。
我在关卡中的代码是这样的:
private function enterFrameHandler(event:Event):void
{
updatePosition();
updateRotation();
scorebox.text=String(score);
var t:Number = Math.random();
if(t>0.98) {
addasteroid();
}
for (var a:int = 0;a<allast.length;a++) {
if (contains(allast[a])) {
for (var b:int = 0;b<allbullets.length;b++) {
if (allbullets[b].hitTestObject(allast[a])) {
//removeChild(allbullet[b]);
if (contains(allast[a])) {
removeChild(allast[a]);
}
//score
score+=5;
if (score==20) {
dispatchEvent(new Event("next_level"));
}
}
if (allast[a].hitTestObject(_player)) {
//removeChild(allbullet[b]);
trace("hitplayer");
endGame();
}
}
allast[a].y += 2;
}
}
}//function
现在在我的游戏索引中,我有以下代码:
import flash.events.Event;
addEventListener("next_level", movetointro);
function movetointro(e:Event){
trace("IT IS WORKING");}
为什么我不动作功能工作?
答案 0 :(得分:0)
你可以试试这个(100%工作):
package {
import flash.display.MovieClip;
public class Game extends MovieClip {
import flash.events.*
private var score:Number
private static const event_name:String = 'my_event_name'
private static const min_score_to_go:Number = 20
public function Game() {
score = 0
addEventListener(event_name, goto_next_level)
}
public function score_up(){
score ++
verify_score()
}
public function score_down(){
score --
verify_score()
}
private function goto_next_level(e:Event){
trace('OK, I can go to next level')
removeEventListener(event_name, goto_next_level)
}
private function verify_score(){
trace('score : '+score)
if(score == min_score_to_go){
dispatchEvent(new Event(event_name))
}
}
}
}