私たちはこれをやろうとしています:
<rollOverEffect>
<AnimateProperty property="scaleX" toValue="{originalWidth + scaleFactor}" />
</rollOverEffect>
ただし、効果 toValue は常に NaN のようです。値を定数に設定すると、効果が機能します。このような効果にデータバインディングを使用することはできませんか?
補遺: originalWidth と scaleFactor の両方がバインド可能です。効果を rollOverEffect-tag から移動し、効果と id を指定してから、次のようにバインドすることで、これを機能させることができました。
<AnimateProperty id="scaleEffect" property="scaleX" toValue="{originalWidth + scaleFactor}" />
<MyComponent rollOverEffect="{scaleEffect}" />
なぜこれが機能し、以前のコードが機能しないのか、何か考えはありますか? 後者のスニペットは、不要な 2 番目のバインディングを作成するため、読みにくいですが、少なくとも機能します。
補遺: 次のコードは問題を強調しています。スライダーが何に設定されていても、効果の angleTo プロパティの値は、スライダーの初期値が設定されているものに常に設定されます。
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:VBox horizontalCenter="0" verticalCenter="0">
<mx:Label text="Rotation (mouse over on canvas triggers effect):" />
<mx:HSlider id="slider" width="200" minimum="0" maximum="360" value="90" />
<mx:Spacer height="50" />
<mx:Canvas borderStyle="solid" borderThickness="1" borderColor="#ff0000" backgroundColor="#0000ff" width="200" height="200">
<mx:rollOverEffect>
<mx:Rotate angleTo="{slider.value}" duration="500" />
</mx:rollOverEffect>
<mx:rollOutEffect>
<mx:Rotate angleTo="{-slider.value}" duration="500" />
</mx:rollOutEffect>
</mx:Canvas>
</mx:VBox>
</mx:Application>
実際に期待される結果を生成する次のコードと比較してください。
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Rotate id="rollOver" angleTo="{slider.value}" duration="500" />
<mx:Rotate id="rollOut" angleTo="{-slider.value}" duration="500" />
<mx:VBox horizontalCenter="0" verticalCenter="0">
<mx:Label text="Rotation (mouse over on canvas triggers effect):" />
<mx:HSlider id="slider" width="200" minimum="0" maximum="360" value="90" />
<mx:Spacer height="50" />
<mx:Canvas rollOverEffect="{rollOver}" rollOutEffect="{rollOut}" borderStyle="solid" borderThickness="1" borderColor="#ff0000" backgroundColor="#0000ff" width="200" height="200" />
</mx:VBox>
</mx:Application>
本質的に問題は何でしょうか。最初の例でバインドが機能しないのはなぜですか? これを伝えるエラーや警告はありません。これに関するドキュメントも見つかりません。バグでしょうか?