我写了一个动作脚本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");
}
}
}
}
这是我对屏幕的第一个看法:
当我按下左侧航行按钮时,不仅太空船而且背景向右移动。我怎么能解决我的问题?
向左箭头推后一次:
答案 0 :(得分:0)
在这种情况下,您的x+=50;
指的是整个主要课程。如果您只想移动太空船,则应更改“myHero”属性。
所以:
myHero.x += 50;
修改强>
抱歉,myHero
是构造函数中的局部变量,因此无法从外部访问。
执行:
private var myHero:Ship;
在构造函数之前,内部只需将其更改为
myHero = new Ship();