[英]Flex Dynamically Created Components Added to Custom Components
我创建了一个动态添加的VBox,其中包含两个图像。 导入自UIComponent派生的自定义组件。 问题在于包含两个图像的Vbox的尺寸非常小。 我希望VBox可以拉伸到两个图像的大小。
这就是我创建Vbox的方式。
var open:Image = new Image();
open.source = 'assets/icons/open.png';
var save:Image = new Image();
save.source = 'assets/icons/save.png';
var box:VBox = new VBox();
box.addChild(open);
box.addChild(save);
该组件是这样的。
public class MyComponent extends UIComponent
我将VBox分配给这样的组件(这是在creationComplete事件之后)
public function set VBoxOptions(value:UIComponent) : void {
if(_vBoxOptions){
removeChild(_vBoxOptions);
}
_vBoxOptions = value;
addChild(_vBoxOptions);
invalidateSize();
}
在更新显示列表中,我执行此操作。
override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void {
if(_hoverOptions)
{
_hoverOptions.move(unscaledWidth+2,2); //please note this is not the problem,
}
}
感谢您的帮助...
您是否需要扩展UIComponent,因为Canvas将使您更快地到达那里:
package
{
import flash.events.Event;
import mx.containers.Canvas;
import mx.core.UIComponent;
public class MyUIComponent extends Canvas
{
private var _vBoxOptions:UIComponent;
public function MyUIComponent()
{
super();
}
public function set vBoxOptions(value:UIComponent):void
{
if(_vBoxOptions && this.contains(_vBoxOptions))
{
this.removeChild(_vBoxOptions);
}
_vBoxOptions = value;
_vBoxOptions.validateNow();
this.addChild(_vBoxOptions);
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.