flash as3 дочерние элементы Image или UIComponent не отображаются - PullRequest
0 голосов
/ 17 августа 2010

Например, объекты mx.controls.Image отображаются, только когда я добавляю их непосредственно в основной объект приложения.Если я добавлю «образ» к ранее созданному объекту изображения, он просто не отобразится.Зачем ?Какую концепцию я пропустил?

Что я хочу сделать:

var img : Image = new Image;
var subimg : Image = new Image;

img.source = "images/panel.png";
subimg.source = "images/panel.png";

subimg.x = 10;
subimg.y = 10;
addChild (img);
img.addChild(subimg);    // img is displayed, but not the overlapping subimg

ОК, и вот код, как это путем непосредственного добавления subimg в приложение, как IMG - это работаетконечно:

var img : Image = new Image;
var subimg : Image = new Image;

img.source = "images/panel.png";
subimg.source = "images/panel.png";

subimg.x = 10;
subimg.y = 10;
addChild (img);
addChild(subimg);    // img & subimg is displayed correctly

1 Ответ

0 голосов
/ 17 августа 2010

Что именно вы хотите сделать, что второй пример вам не подходит? Вообще говоря, компоненты UIC - это вещи со сложными внутренними компонентами, состоящие в том, что они имеют скины, стили и т. Д., И они управляют своим собственным содержимым (как в случае с Image, который заполняется загруженными ресурсами).

Я недостаточно знаком с Image, чтобы точно сказать, в чем проблема - скрыт ли объект subimg или сбой загрузки, или что. Но то, что вам, вероятно, следует сделать, это создать свой собственный Sprite и добавить оба изображения внутри него, или создать два спрайта, добавить изображение к каждому из них и назначить их родительскими, как вам нравится, чтобы вы могли иметь сходные отношения родитель-потомок, не отбрасывая вокруг во внутреннем компоненте.

Например:

// ... make img and subimg
var imgContainer:Sprite = new Sprite();
imgContainer.addChild(img);
var subimgContainer:Sprite = new Sprite();
subimgContainer.addChild(subimg);
imgContainer.addChild(subimgContainer);
addChild(imgContainer);
...