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

slsn1g29  于 2022-11-01  发布在  Apache
关注(0)|答案(1)|浏览(142)

我有一个标注,它的内容是由某些用户交互调整大小的。皮肤有一个动画,在此之后,标注不再正确定位,需要重新定位。
在调整标注内容的大小后,是否有任何方法使标注无效?

w8f9ii69

w8f9ii691#

这比我想象的要简单。我在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>

相关问题