Actionscript 3 AS3:即使添加了子对象也不显示

Actionscript 3 AS3:即使添加了子对象也不显示,actionscript-3,object,addchild,Actionscript 3,Object,Addchild,好的,让我首先说这是我的第一个AS3项目。我对Java没意见,所以OOP和继承对我来说并不陌生。 我真的花了几个小时坐在这里思考为什么我的代码不能像我希望的那样工作。 我从一个试图射出子弹的炮塔开始。然而,尽管x坐标和y坐标仍在变化,但子弹并没有显示在屏幕上。 创建子弹/投射物的方法称为OnMouseClick。 这是我的密码: public类主扩展Sprite { public var projectlearr:Array=new Array();//存储投射对象的数组 公共变量projCou

好的,让我首先说这是我的第一个AS3项目。我对Java没意见,所以OOP和继承对我来说并不陌生。 我真的花了几个小时坐在这里思考为什么我的代码不能像我希望的那样工作。 我从一个试图射出子弹的炮塔开始。然而,尽管x坐标和y坐标仍在变化,但子弹并没有显示在屏幕上。 创建子弹/投射物的方法称为OnMouseClick。 这是我的密码:

public类主扩展Sprite
{
public var projectlearr:Array=new Array();//存储投射对象的数组
公共变量projCount:Number=0;//计数器
public var curX:Number;//鼠标坐标
公共变量curY:编号;
私有变量tri1:Sprite=newsprite();
私有变量tri1Height:数字=50;
私有变量rect1:Sprite=newsprite();
私有变量rect1W:Number=2;
私有变量:数字=10;
私有变量角度:数字=0;
私有var加速:数字=0;
公共变量triSpeedX:Number=0;
公共变量三速:数字=0;
公共角度:数字;
//键盘布尔
私有变量leftDown:Boolean=false,righdown:Boolean=false,upDown:Boolean=false,down:Boolean=false;
公共函数Main():void
{
如果(阶段)
init();
其他的
addEventListener(Event.ADDED_TO_STAGE,init);
}
私有函数init(e:Event=null):void
{
removeEventListener(Event.ADDED_TO_STAGE,init);
//入口点
//画三角形
addChild(tri1);
tri1.图形.线条样式(1,0xff00ff00);
tri1.graphics.beginll(0xff0000);
tri1.图形.移动到(0,-tri1高度/2)
tri1.graphics.lineTo(tri1Height/3,+tri1Height/2);
tri1.graphics.lineTo(-tri1Height/3,+tri1Height/2);
tri1.graphics.endFill();
tri1.x=400;
tri1.y=300;
//牵引炮塔
addChild(rect1);
rect1.graphics.beginull(0xFFFFFF);
rect1.graphics.moveTo(rect1W/2,-rect1H);
rect1.graphics.lineTo(rect1W/2,0);
rect1.graphics.lineTo(-rect1W/2,0);
rect1.graphics.lineTo(-rect1W/2,-rect1H);
rect1.graphics.endFill();
rect1.x=tri1.x;
rect1.y=tri1.y;
stage.addEventListener(KeyboardEvent.KEY_UP,onUp);
stage.addEventListener(KeyboardEvent.KEY_DOWN,onDown);
stage.addEventListener(Event.ENTER\u FRAME,Run);
stage.addEventListener(MouseEvent.MOUSE_MOVE,getMouseCoord);
stage.addEventListener(MouseEvent.MOUSE_向下,OnMouseClick);
}
//点击创建射弹
鼠标点击的公共函数(e:MouseEvent):无效
{
ProjectLearR[projCount]=新投射物(rect1.x,rect1.y,炮塔角度);//创建新投射物对象
addChild(projectLearr[projCount]);/…则不显示它
projCount++;
跟踪(“BAM”);
}
公共函数getMouseCoord(e:MouseEvent):void
{
curX=mouseX;
curY=老鼠;
}
公共功能onUp(e:键盘事件):无效
{
if(e.keyCode==Keyboard.LEFT)
leftDown=false;
else if(e.keyCode==Keyboard.RIGHT)
右下=假;
if(e.keyCode==Keyboard.UP)
向上向下=错误;
else if(e.keyCode==Keyboard.DOWN)
向下=假;
}
onDown公共功能(e:键盘事件):无效
{
if(e.keyCode==Keyboard.LEFT)
leftDown=true;
else if(e.keyCode==Keyboard.RIGHT)
右下=真;
if(e.keyCode==Keyboard.UP)
向上向下=真;
else if(e.keyCode==Keyboard.DOWN)
向下=真;
}
公共函数addProjToScreen(射弹:射弹):无效
{
addChild(射弹);
}
私有函数运行(e:事件):无效
{
加速度=0;//将加速度重置回0以限制速度
如果(左下)
{   
角度-=5;
}
else if(右下)
{
角度+=5;
}
如果(向上向下)
{
加速度+=3;
}
else if(向下)
{
加速度-=3;
}
triSpeedX+=加速度*Math.cos(角度*Math.PI/180);
三速+=加速度*Math.sin(角度*Math.PI/180);
tri1.x+=triSpeedX;
tri1.y+=三速;
//边界
if(tri1.x<0)
{
三速x*=-.5;
tri1.x=0;
}
如果(tri1.x>800)
{
tri1.x=800;
三速x*=-.5;
}
if(tri1.y<0)
{
三速*=-.5;
tri1.y=0;
}
如果(tri1.y>600)
{
三速*=-.5;
tri1.y=600;
}
//摩擦
三速x*=0.95
三速*=0.95
rect1.x=tri1.x;
rect1.y=tri1.y;
var xCurDist:Number=curX-rect1.x;
var yCurDist:Number=curY-rect1.y;
炮塔角度=数学atan(yCurDist/xCurDist)*180/数学PI;
if(xCurDist<0)
{
转塔角+=180;
}
if(xCurDist>0&&yCurDist<0)
{
转塔角+=360;
}
rect1.旋转=炮塔角度+90;//+90以说明精灵最初指向上,即逆时针270度
tri1.旋转=角度+90;
对于(变量i:int=0;i
以及射弹级别:

MovieClip的公共类
{
私有变量:Sprite=新Sprite();
专用var速度:int=10;
私有变量角度:数字;
私有变量xIncr:编号;
私家车易建联
addChild(projectile);