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 に答える