我有一个自定义的ActionScript组件,我在Flex应用程序中使用它(Flex 3.3,ActionScript 3)。此组件包含一个Image控件,其可见性是根据提供给组件的data
元素的属性动态设置的。
问题在于,即使我将图像设置为可见,也不会在屏幕上呈现。为了渲染图像,我需要做些什么吗?下面相关代码的片段:
override public function set data( value:Object ):void
{
_data = value;
if( _data ) {
if( _myImg ) {
_myImg.source = someImageClass;
_myImg.visible = _data.visibilityProperty;
_myImg.includeInLayout = _data.visibilityProperty;
_myImg.invalidateProperties();
_myImg.invalidateDisplayList();
}
}
invalidateProperties();
invalidateDisplayList();
}
override protected function createChildren():void
{
super.createChildren();
if( !_myImg ) {
_myImg = new Image();
_myImg.height = 16;
_myImg.width = 16;
addChild( _myImg );
}
}
override protected function updateDisplayList( unscaledWidth:Number, unscaledHeight:Number ):void
{
super.updateDisplayList( unscaledWidth, unscaledHeight );
_myImg.x = calculatedXCoordinate;
_myImg.y = calculatedYCoordinate;
}
答案 0 :(得分:2)
您是否将组件添加到显示列表中?看起来您已将图像添加到组件的displaylist中,但可能没有对组件本身做任何事情。
答案 1 :(得分:1)
事实证明,我发布的上述代码将,实际上正常运行。我发现由于我应该抓住的复制粘贴错误,我没有将图像添加到显示列表中,因此它从未出现过。