如何调整标注中的更新以在其内容调整大小后更新其位置?

时间:2016-09-13 22:17:38

标签: flex flex4

我有一个标注,其内容通过某些用户互动调整大小。皮肤有动画,之后Callout不再正确定位,需要重新定位。

Callout内容调整后,有没有办法让Callout无效?

1 个答案:

答案 0 :(得分:0)

这比我想象的要简单。我在Callout内容的resize事件中添加了一个事件处理程序,然后在该事件中调用了Callout方法updatePopUpPosition()来更新Callout位置。

起初我正在寻找一个可以在调整Callout之后监听的事件,但这会涉及在有效时调度自定义事件。当调整大小效果运行时,为resize添加事件处理程序会多次触发,但动画和定位完美无缺,所以我保留它。

<?xml version="1.0" encoding="utf-8"?>
<s:Callout xmlns:fx="http://ns.adobe.com/mxml/2009" 
         xmlns:s="library://ns.adobe.com/flex/spark" 
         xmlns:mx="library://ns.adobe.com/flex/mx" 

    <fx:Script>
        <![CDATA[
            import mx.events.FlexMouseEvent;
            import mx.events.ResizeEvent;

            protected function editorBar_resizeHandler(event:ResizeEvent):void {
                updatePopUpPosition();
            }

        ]]>
    </fx:Script>

    <controls:MyContent id="editBar" width="100%" resize="editBar_resizeHandler(event)" />
</s:Callout>