首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AS3调度事件不工作

AS3调度事件不工作
EN

Stack Overflow用户
提问于 2014-11-03 06:55:35
回答 1查看 249关注 0票数 0

我真的很困惑。我让代码完美地工作,然后回去尝试一些东西,现在它不能工作了。我似乎不知道现在是什么时候,结果我开始真的很沮丧。我似乎也没有收到任何错误提示。

我有两个文件gameindex和一个是外部swf,这是我导入的级别在Gameindex之上。当事件被调用时,我想移到时间线上的其他位置,但到目前为止,调用事件不起作用。

我在级别中的代码如下:

代码语言:javascript
复制
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

现在在我的游戏索引中,我有了休眠代码:

代码语言:javascript
复制
import flash.events.Event;

addEventListener("next_level", movetointro);

   function movetointro(e:Event){
     trace("IT IS WORKING");}

为什么我的movetointro函数不起作用?

EN

回答 1

Stack Overflow用户

发布于 2014-11-03 07:30:34

你可以试试这个( 100%工作):

代码语言:javascript
复制
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))
            }
        }

    }   
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26705432

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档