2016-09-13 2 views
0

У меня есть выносок, содержимое которого изменяется в зависимости от определенных пользовательских взаимодействий. Кожа имеет анимацию, и после этого выносок больше не позиционируется правильно и его нужно переместить.Как инициировать обновление в выноске, чтобы обновить его положение после того, как его содержимое было изменено?

Можно ли каким-либо образом аннулировать выносок после изменения размера выноски?

ответ

0

Это было проще, чем я думал. Я добавил обработчик события к событию изменения размера для контента 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> 
Смежные вопросы