我有一个标注,其内容通过某些用户互动调整大小。皮肤有动画,之后Callout不再正确定位,需要重新定位。
Callout内容调整后,有没有办法让Callout无效?
答案 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>