我需要一些代码才能在知道其子代的所有大小后在组件中运行。该组件具有绝对布局。我认为我的组件的measure()函数会在被调用的所有子项的measure()函数被调用之后被调用,但似乎因为它具有绝对布局,它甚至从不调用度量。
无论如何,它是一个Canvas而我的override protected function measure():void
永远不会运行。我做错了什么?
答案 0 :(得分:1)
updateDisplayList()在UIComponent的commitProperties中调用。我相信这是在知道子大小之后调用的,而且你应该放置你的布局代码。
在组件上明确设置宽度和高度时,不会调用measure()。如果您的画布上有绝对布局,但没有设置宽度和高度,则会调用measure()。
HTH;
艾米
答案 1 :(得分:0)
您不需要覆盖任何内容,只需将侦听器添加到组件的creationComplete即可。此事件为“在组件完成构造,属性处理,测量,布局和绘制时调度。”
组件继承自s:Group
的示例<?xml version="1.0" encoding="utf-8"?>
<s:Group xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" width="400" height="300"
creationComplete="group1_creationCompleteHandler(event)">
<fx:Script>
<![CDATA[
import mx.events.FlexEvent;
protected function group1_creationCompleteHandler(event:FlexEvent):void
{
//TODO add code here
}
]]>
</fx:Script>
</s:Group>