含まれているコンテンツに合わせたサイズのグループがありますが、Tweenerを使用してトランジションを実行するには、幅と高さのプロパティを設定する必要があります。アニメーションが完了したら、明示的な幅と高さのプロパティをクリアして、グループがその内容に基づいたサイズに戻るようにするにはどうすればよいですか?
前:
<s:Group ><content.../></s:Group>
コード:
width = 250;
height = 250;
Tweener.addTween(this, {width:500, height:500, time:0.25, onComplete:openAnimationComplete});
トゥイーン後、グループは次のように実質的に500x500に設定されます。
<s:Group width="500" height="500" ><content /></s:Group>
私はそれをこれに戻したい:
<s:Group ><content /></s:Group>
Flextrasのソリューションを使用してテストコードを更新します。
<fx:Script>
<![CDATA[
protected function button1_clickHandler(event:MouseEvent):void
{
var w:Object = myGroup.width;
var h:Object = myGroup.height;
if (myGroup.width!=300) {
myGroup.width = 300;
myGroup.height = 300;
}
else {
myGroup.width = NaN;
myGroup.height = NaN;
w = myGroup.width; // NaN
h = myGroup.height; // NaN
//myGroup.validateNow()
if (myGroup.parent is IInvalidating) {
IInvalidating(myGroup.parent).validateNow();
}
w = myGroup.width; // 600
h = myGroup.height; // 100
}
}
]]>
</fx:Script>
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<s:Group id="myGroup" minHeight="0" minWidth="0" clipAndEnableScrolling="true">
<s:Button width="600" height="100" label="here is a button" click="button1_clickHandler(event)"/>
</s:Group>