Actionscript 3 未按名称获取子对象(as3 flash) private var childrenstate:Number; 公共功能Main() { //羽毛球运动员 角色=新玩家(); character.name=“player”; 蒂米=新的蒂米(); 卡罗琳=新公主(); //在地面上 接地=新接地(); stage.addEventListener(Event.ENTER_FRAME,mainGameLoop) } 私有函数1():void { stage.removeEventListener(Event.ENTER_FRAME,mainGameLoop) gotoAndStop(“1级”); addChild(字符); character.x=stage.stageWidth*0.5; 字符y=0; addChild(地面); stage.addEventListener(Event.ENTER_FRAME,level1) stage.addEventListener(KeyboardEvent.KEY_DOWN,keyDown); stage.addEventListener(KeyboardEvent.KEY\u UP,keyUp); childrenstate=this.numChildren; } 私有函数processCollisions():void { trace(character.name);//表示instance6,即使我将其名称设置为…“player”) trace(character.name==“player”);//为此设置为false trace(character.name==“instance6”);//表示为true,因此我将此名称放在下面 for(变量c:int=0;c
您已经看到,我启动了变量并声明了它们 角色已被命名为“player”。但此名称不适用于此,因为processCollision函数中的跟踪命令会有所不同 不过,多亏了trace命令,我已经解决了这个问题,不管怎么说,为什么名称被设置为player。解决了,我真傻Actionscript 3 未按名称获取子对象(as3 flash) private var childrenstate:Number; 公共功能Main() { //羽毛球运动员 角色=新玩家(); character.name=“player”; 蒂米=新的蒂米(); 卡罗琳=新公主(); //在地面上 接地=新接地(); stage.addEventListener(Event.ENTER_FRAME,mainGameLoop) } 私有函数1():void { stage.removeEventListener(Event.ENTER_FRAME,mainGameLoop) gotoAndStop(“1级”); addChild(字符); character.x=stage.stageWidth*0.5; 字符y=0; addChild(地面); stage.addEventListener(Event.ENTER_FRAME,level1) stage.addEventListener(KeyboardEvent.KEY_DOWN,keyDown); stage.addEventListener(KeyboardEvent.KEY\u UP,keyUp); childrenstate=this.numChildren; } 私有函数processCollisions():void { trace(character.name);//表示instance6,即使我将其名称设置为…“player”) trace(character.name==“player”);//为此设置为false trace(character.name==“instance6”);//表示为true,因此我将此名称放在下面 for(变量c:int=0;c,actionscript-3,flash,Actionscript 3,Flash,您已经看到,我启动了变量并声明了它们 角色已被命名为“player”。但此名称不适用于此,因为processCollision函数中的跟踪命令会有所不同 不过,多亏了trace命令,我已经解决了这个问题,不管怎么说,为什么名称被设置为player。解决了,我真傻 private var childrenOnStage:Number; public function Main() { //iniation players char
private var childrenOnStage:Number;
public function Main()
{
//iniation players
character = new player();
character.name = "player";
timmy = new SirTimmy();
caroline = new princess();
//init the ground
ground = new Ground();
stage.addEventListener(Event.ENTER_FRAME, mainGameLoop)
}
private function startLevel1():void
{
stage.removeEventListener(Event.ENTER_FRAME, mainGameLoop)
gotoAndStop("Level 1");
addChild(character);
character.x = stage.stageWidth * 0.5;
character.y = 0;
addChild(ground);
stage.addEventListener(Event.ENTER_FRAME, level1)
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDown);
stage.addEventListener(KeyboardEvent.KEY_UP, keyUp);
childrenOnStage = this.numChildren;
}
private function processCollisions():void
{
trace(character.name); //said instance6 even though i set its name to..."player")
trace(character.name == "player"); // said false for this
trace(character.name == "instance6"); // said true for this so i put this name below
for (var c:int = 0; c < childrenOnStage; c++)
{
if (getChildAt(c).name == "instance6" || getChildAt(c).name == "enemy")
{
这意味着这个角色就是蒂米的一个例子
在那里,当我声明并初始化timmy时,我必须将timmy的名字设置为“player”
所以
timmy.name = "player";
我肯定非常喜欢As3、类系统和层次结构系统:)
很抱歉浪费时间,这是一个愚蠢的错误
timmy.name = "player";
character.name will equal player, since...
character = player