Actionscript 3 AS3:已添加子项,但未显示

Actionscript 3 AS3:已添加子项,但未显示,actionscript-3,movieclip,addchild,Actionscript 3,Movieclip,Addchild,当我创建ItemView的一个实例并将其添加到stage时,“Title”显示,但蓝色方框不显示。但是,如果我在this而不是\u extra上调用graphics,我确实会看到蓝色方块。这告诉我extra本身没有正确显示,但我不明白为什么 我错过了什么?将一个MovieClip添加到另一个是否有特殊程序?尝试删除 public class ItemView extends MovieClip { private var _title:TextField; private var _e

当我创建
ItemView
的一个实例并将其添加到stage时,“Title”显示,但蓝色方框不显示。但是,如果我在
this
而不是
\u extra
上调用
graphics
,我确实会看到蓝色方块。这告诉我extra本身没有正确显示,但我不明白为什么

我错过了什么?将一个
MovieClip
添加到另一个
是否有特殊程序?

尝试删除

public class ItemView extends MovieClip {

  private var _title:TextField;
  private var _extra:MovieClip;

  public function ItemView( ) {
    setup();
    return;
  }

  private function setup( ):void {
    trace("ItemView::setup()");
    _title = new TextField();
    _title.text = "Title";
    addChild(_title);
    _extra = new MovieClip();
    _extra.width = 200;
    _extra.height = 40;
    _extra.graphics.beginFill(0x0000ff);
    _extra.graphics.drawRect(0, 0, 20, 20);
    _extra.graphics.endFill();
    addChild(_extra);
    return;
  }

}
尝试删除

public class ItemView extends MovieClip {

  private var _title:TextField;
  private var _extra:MovieClip;

  public function ItemView( ) {
    setup();
    return;
  }

  private function setup( ):void {
    trace("ItemView::setup()");
    _title = new TextField();
    _title.text = "Title";
    addChild(_title);
    _extra = new MovieClip();
    _extra.width = 200;
    _extra.height = 40;
    _extra.graphics.beginFill(0x0000ff);
    _extra.graphics.drawRect(0, 0, 20, 20);
    _extra.graphics.endFill();
    addChild(_extra);
    return;
  }

}
有点怪

设置MovieClip对象的宽度/高度时,Flash内部也会调整
scaleX
scaleY
属性。例如,如果原始宽度为100,而现在您已将其设置为200,则新的
scaleX
应为2。这意味着Flash将以2倍的比例水平显示

现在,最初宽度为0(空白对象),因此当您设置新宽度时,新的
scaleX
应变为无穷大-或0,就像Flash所做的那样

因此,即使你在对象上画了一些东西,它仍然处于零比例,这就是为什么什么都不显示。补救方法,如另一张海报所建议的,是为了避免在空白对象上设置宽度/高度,或者在绘图完成后,将代码< > SCAXEX <代码>和<代码> SCALY 重置为1。< /P>
_extra.width = 200;
_extra.height = 40;
有点怪

设置MovieClip对象的宽度/高度时,Flash内部也会调整
scaleX
scaleY
属性。例如,如果原始宽度为100,而现在您已将其设置为200,则新的
scaleX
应为2。这意味着Flash将以2倍的比例水平显示

现在,最初宽度为0(空白对象),因此当您设置新宽度时,新的
scaleX
应变为无穷大-或0,就像Flash所做的那样

因此,即使你在对象上画了一些东西,它仍然处于零比例,这就是为什么什么都不显示。补救方法,如另一张海报所建议的,是为了避免在空白对象上设置宽度/高度,或者在绘图完成后,将代码< > SCAXEX <代码>和<代码> SCALY 重置为1。< /P>
_extra.width = 200;
_extra.height = 40;

我不确定这解决了什么问题,但您几乎不应该在IDE之外使用MovieClip。改用Sprite类。MovieClip有很多无用的开销。我不确定这是否解决了任何问题,但您几乎不应该在IDE之外使用MovieClip。改用Sprite类。MovieClip有很多无用的开销,嗯?为什么?这是怎么造成的?设置高度和宽度怎么可能有这种效果?“除了文本字段和视频对象外,没有内容的显示对象(如空精灵)的宽度为0,即使您尝试将宽度设置为不同的值。”@Chris,请指出。画完矩形后,你可以随意调整宽度和高度。嗯?为什么?这是怎么造成的?设置高度和宽度怎么可能有这种效果?“除了文本字段和视频对象外,没有内容的显示对象(如空精灵)的宽度为0,即使您尝试将宽度设置为不同的值。”@Chris,请指出。绘制矩形后,可以根据需要调整宽度和高度。