PDA

Просмотр полной версии : addChild в чем загвоздка


VovkaMorkovka
11.09.2007, 18:22
Здравствуйте господа, возникла проблема - не добавляется в дисплей лист мувиклип. Есть класс

public class View extends MovieClip
{
...
public function update(e:GameEvent):void{

var infoArray:Array=e.getEventInfo();

if (infoArray["action"]==SetParameters.CREATE_CREATURE){
createViewOfCreatures(infoArray);
}

}


function createViewOfCreatures(infoArray:Array):void{
try{

var typeOfCreature:String=infoArray["typeOfCreature"];
var creature:Creature;

switch(typeOfCreature){
case SetParameters.SIMPLE_ONLY_MOVED_ROBOT:
creature=new SimpleOnlyMovedRobot();


this.addChild(creature);

addChild( creature );
creature.visible=true;
break;

}


}catch(e:Error){
trace(e);
}
}
}

Вот код классов


public class Creature extends MovieClip
{
public function Creature()
{

}
}

И наследуемый от него


public class SimpleOnlyMovedRobot extends Creature
{
public function SimpleOnlyMovedRobot()
{

}
}Ф - ция createViewOfCreatures создает новый мувиклип, а он хотя и создается( проверено трейсом) в дисплей не добавляется.
Вопрос как всегда такой: почему так происходит и как с этим бороться?
Зараннее благодарен,
Владимир

VovkaMorkovka
11.09.2007, 19:04
В процессе тестов выяснилось следующее - данные классы вообще не отображаются, почему не известно.
Т.е пишу в конструкторе

public class View extends MovieClip
{

private var playerView:PlayerView;
private var model:Model;
var creature:StrongOnlyMovedRobot;
//Контейнер ботов
//В него по ключу запихивается бот и
//над ним производятся различные операции
private var botsContainer:HashMap;

public function View()
{




playerView=new PlayerView();
addChild(playerView);
creature=new StrongOnlyMovedRobot();
creature.x=100;
creature.y=100;
trace("Добавили в плейлист:"+creature);
this.addChild(creature);
playerView.x=0;
playerView.y=0;
//drawCells();
botsContainer=new HashMap();


}



playerView добавляется, а creature нет.

Ниже привожу код
Класса PlayerView


package classes.view{
import flash.display.MovieClip;
import classes.SetParameters;

public class PlayerView extends MovieClip
{
public function PlayerView()
{
this.width=SetParameters.PLAYER_DIAMETER;
this.height=SetParameters.PLAYER_DIAMETER;
}
}
}