AS3在特定框架上移动物体

时间:2017-04-07 09:03:43

标签: actionscript-3 flash

所以我已经在这个游戏上工作了一个星期了,我根本没有任何编码背景所以我试图在这里找到教程..然后我想出了这个问题......

所以我想做的是当我点击内部的第80帧(CHARA,这是一个具有99帧btw的嵌套movieClip)时将对象(CHARA)移动到右边,然后当我点击第99帧时将其移回原始位置。 .. 问题是我做的任何事情都没有使我的物体移动(movieClip仍然播放顺便说一句)我在这里做错了什么?我只是把代码放在错误的位置? (只有当我把代码x =直接放在第80帧但我尝试在这里使用类时才移动CHAR)

这是我的代码,对不起,我知道这是我的第一个代码,我在这里尽力而为凌乱

package {

    public class Main extends MovieClip {

        public var CHARA:CHAR = new CHAR;//my main char
        public var rasen:Rasen_button = new Rasen_button;//the skill button
        public var NPCS:NPC = new NPC;// the npc

        public function Main() {
            var ally:Array = [265,296];//where me and my ally should be
            var jutsu:Array = [330,180];// where the buttons should be
            var enemy:Array = [450,294];//where the enemies should be

            addChild(NPCS);
            NPCS.x = enemy[0];
            NPCS.y = enemy[1];
            NPCS.scaleX *=  -1;

            addChild(rasen);
            rasen.x = jutsu[1];
            rasen.y = jutsu[0];

            addChild(CHARA);
            CHARA.x = ally[0];
            CHARA.y = ally[1];
            rasen.addEventListener(MouseEvent.CLICK, f2_MouseOverHandler);
            function f2_MouseOverHandler(event:MouseEvent):void {
                CHARA.gotoAndPlay(46); //here is the problem
                if (CHARA.frame == 80)
                {
                    CHARA.x = ally[1]; //just random possition for now
                }

            }
        }
    }
}

有什么建议吗?

1 个答案:

答案 0 :(得分:3)

您的body{ background: #466368; background: -webkit-linear-gradient(#648880, #293f50); background: -moz-linear-gradient(#648880, #293f50); background: linear-gradient(#648880, #293f50); margin: 0px; height: 100%; min-height: 100%; } html{ margin: 0px; height: 100%; } 语句位于点击处理程序(if)内,因此仅在用户点击f2_MouseOverHandler时执行,而不一定在回放到达rasen时执行。这是与计时和代码执行相关的常见初学者错误。最直接的解决方案是编写一些代码,使用80处理程序执行每一帧:

ENTER_FRAME