沮丧的动画问题

时间:2010-06-30 22:15:37

标签: flex animation state transition

我花了2个小时在这个简单的状态来状态转换,只需调整大小并移动动画....我可以让元素移动和淡出......但根本没有调整大小的动画。面板元素整个时间保持相同的宽度。如果我将代码复制到一个全新的测试mxml文件,它可以工作,但不能在我的主应用程序文件中...我想知道这里是否有人可以帮助我。非常感谢。

//This is a custom component inside the main application...Not sure if it relates to my issue.....

<mx:Canvas xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" width="1000" height="600" xmlns:getcomplist="services.getcomplist.*" xmlns:components="components.*"
currentState="defaultState">

<fx:Script>
<![CDATA[

   protected function compList_changeHandler(event:IndexChangeEvent):void
   {
       currentState="whenClick";
   }

]]>
</fx:Script>

<mx:states>
<s:State name="defaultState"/>
<s:State name="whenClick" />
</mx:states>

<mx:transitions>
<s:Transition toState="whenClick">

<s:Parallel target="{animationIsAnnoying}">
<!--<s:Fade duration="1000"/>-->    // Fade is working fine...
<s:Resize heightFrom="600" duration="5000" />  //resize is not working
<s:Move xFrom="500" duration="5000" />  //Move is working fine
</s:Parallel>

</s:Transition>
</mx:transitions>


<s:HGroup>

<s:List id="compList"
width="280"
height="500"
change="compList_changeHandler(event)">
</s:List>


<s:Panel id="animationIsAnnoying" height="150" includeIn="whenClick" /> //The panel I want to animated...


<components:compDisplayDetail includeIn="whenClick" id="compDisplay" width="600" height="500" userPic="{userPicResult.lastResult}" dataFromClick ="{compDetailinfoResult.lastResult}" /> 

</s:HGroup>


</mx:Canvas>

1 个答案:

答案 0 :(得分:1)

您必须有一个click事件来命令调整大小组件

我在这里使用mx:调整组件大小

<mx:Resize id="resizeThis" target="{toolBoxContainer}"/>
<mx:VBox id="toolBoxContainer" height="200" width="300" >           
                <mx:Textid="txt" text="HELLO"/>
        </mx:VBox>

<mx:Button id="menuImage"toolTip="Show/Hidden Menu" click="menuClickHandler(event)" toggle="true"/> 

<mx:Script>
<![CDATA[
private var toggle:int =1;
private function menuClickHandler(e:MouseEvent):void {

                if(toggle == 0 ) { 

                    //MoveThis.end();
                    resizeThis.widthFrom = 0
                    resizeThis.widthTo = 46; 
                    resizeThis.play();

                }
                if(toggle == 1) {

                    resizeThis.end();
                    resizeThis.widthFrom = 46
                    resizeThis.widthTo = 0; 
                    resizeThis.play();
                }

                if(toggle == 0) toggle = 1;
                else toggle = 0;

            }
    ]]>
    </mx:Script>

这件东西在进口或类似的东西中有错误..但我认为你明白我的观点..