【问题标题】:How do I trigger an update in a Callout to update it's position after it's content has been resized?调整内容大小后,如何在标注中触发更新以更新其位置?
【发布时间】:2016-09-13 22:17:37
【问题描述】:

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

在调整标注内容大小后,有什么方法可以使标注失效?

【问题讨论】:

    标签: apache-flex flex4


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2018-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多