2012-01-25 60 views
0

我想創建適用調整大小效果的成分,當它是可見:Flex效果

我這樣做:

<s:Panel id="loginPanel" title="Connect" creationCompleteEffect="customResize" 
          showEffect="customResize" hideEffect="fadeOut" 
          width="400" height="300" includeIn="login"> 

有:

<fx:Declarations> 
      <!-- Effects declaration --> 
      <s:Fade id="fadeIn" alphaFrom="0.0" alphaTo="1.0" duration="500"/> 
      <s:Fade id="fadeOut" alphaFrom="1.0" alphaTo="0.0" duration="500"/> 
      <s:Animate id="customResize" duration="1000"> 
       <s:SimpleMotionPath property="percentWidth" valueFrom="0" valueTo="100"/> 
       <s:SimpleMotionPath property="percentHeight" valueFrom="0" valueTo="100"/> 
      </s:Animate> 
     </fx:Declarations> 

問題是,當組件第一次顯示時,效果可以正確播放,但是當狀態從「登錄」更改爲「正在工作」,然後返回「登錄」時,效果不再播放。

我認爲一個可見性事件將被派遣,showEffect應用,但似乎狀態的變化不像我所期待的那樣工作。

如何在每次組件可見時應用效果?

回答

0

你確定各州正在切換可見的財產?
試圖迫使Visible屬性改變:

<s:Fade id="fadeIn" alphaFrom="0.0" alphaTo="1.0" duration="500" effectStart="loginPanel.visible = true"/> 

<s:Fade id="fadeOut" alphaFrom="1.0" alphaTo="0.0" duration="500" effectEnd="loginPanel.visible = false"/> 
+0

一個很好的例子:http://blog.flexexamples.com/2007/09/20/triggering-effects-when-a-containers-visibility-is -changed/ – Joaolvcm

+0

非常感謝! – TheFrenchGuy