动作脚本分别移动动画片段

时间:2014-02-04 23:01:24

标签: actionscript-3 flash

我写了一个动作脚本3.0代码,我有一个背景影片剪辑和一个简单的太空飞船影片剪辑。当按下左箭头按钮时,我想向右移动太空飞船。为此,我写了以下代码:

package{
    import flash .display.*;
    import flash.events.*;
    public class main extends MovieClip{
        public function main(){

         var bground_mc:backGround_mc=new backGround_mc();
         bground_mc.x=0;
         bground_mc.y=0;
         bground_mc.height=400;
         bground_mc.width=550;
         addChild(bground_mc);       


         var myHero:Ship=new Ship();
         addChild(myHero);
        // setChildIndex(myHero,numChildren - 1);

        stage.addEventListener(KeyboardEvent.KEY_DOWN,keyPressedDown);
        }

        function keyPressedDown(event:KeyboardEvent):void{
            if (event.keyCode == 37){
                x+=50;
                            // myHero.x+=50; according to me, It should be like this???
            }
            else{
                trace("non left arrow key is pushed");
            }
        }


    }
}

这是我对屏幕的第一个看法:

http://prntscr.com/2pkwga

当我按下左侧航行按钮时,不仅太空船而且背景向右移动。我怎么能解决我的问题?

向左箭头推后一次:

http://prntscr.com/2pkwxn

1 个答案:

答案 0 :(得分:0)

在这种情况下,您的x+=50;指的是整个主要课程。如果您只想移动太空船,则应更改“myHero”属性。

所以: myHero.x += 50;

修改

抱歉,myHero是构造函数中的局部变量,因此无法从外部访问。

执行:

private var myHero:Ship;

在构造函数之前,内部只需将其更改为

myHero = new Ship();