1

我在这个简单的状态到状态转换上花了 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>
4

1 回答 1

1

您必须有一个点击事件才能命令调整大小组件

我在这里使用 mx:Resize 组件

<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>

这件事在进口或类似方面有错误..但我想你明白我的意思..

于 2010-07-01T01:39:52.367 回答