我想在运行时将图像添加到 as:View 中。但是,我需要在覆盖数据时添加它们以优化视图的外观。但是,我的容器 s:View 尚未添加到显示列表或创建我不确定,因为我很难理解生命周期,而且我是 Flex 4.6 的新手。无论如何,容器还没有被实例化。那么如何将图像添加到元素列表中,以便在创建视图时将它们添加为元素。
基本上与在 mxml 上编写它们时发生的方式相同。
谢谢,戴夫
我想在运行时将图像添加到 as:View 中。但是,我需要在覆盖数据时添加它们以优化视图的外观。但是,我的容器 s:View 尚未添加到显示列表或创建我不确定,因为我很难理解生命周期,而且我是 Flex 4.6 的新手。无论如何,容器还没有被实例化。那么如何将图像添加到元素列表中,以便在创建视图时将它们添加为元素。
基本上与在 mxml 上编写它们时发生的方式相同。
谢谢,戴夫
你可以这样做:
var v:View = new View();
v.layout = new VerticalLayout();
var img:Image = new Image();
img.source = "/path/to/image1";
v.addElement(img);
img = new Image();
img.source = "/path/to/image2";
v.addElement(img);
img = new Image();
img.source = "/path/to/image3";
v.addElement(img);
this.addElement(v);
我必须在 createChildren 上而不是在覆盖数据时添加元素。
override public function set data(value:Object):void
{
super.data = value;
if(value == null)
{
//initialize the data with the images I need to cache
}
}
override protected function createChildren():void
{
super.createChildren();
if(container && definition)//These are the components I need to have instanciated
{
//I then use the cached Images I initialized on the override of data
}
}