2009-04-28 4 views
0

Мы пытаемся это сделать:Свойства эффекта связывания внутри тегов эффекта не работают?

<rollOverEffect> 
    <AnimateProperty property="scaleX" toValue="{originalWidth + scaleFactor}" /> 
</rollOverEffect> 

Тем не менее, кажется, что эффекты toValue всегда NaN. Если я задаю значение константе, эффект будет действовать. Невозможно использовать привязку данных для таких эффектов?


Добавление: Оба originalWidth и scaleFactor является Привязываемое. Мне удалось получить эту работу, перемещая эффект из rollOverEffect-тега, придав ему и идентификатор, а затем привязки к нему так:

<AnimateProperty id="scaleEffect" property="scaleX" toValue="{originalWidth + scaleFactor}" /> 
<MyComponent rollOverEffect="{scaleEffect}" /> 

Любая идея, почему это работает и бывший код не делает? Последний фрагмент создает вторую, необработанную привязку и не читается, но, по крайней мере, она работает.


Добавление: Следующий код указывает на проблему. Независимо от того, что установлен слайдер, значение свойства 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> 

Итак, по существу, что вопрос, почему не связывание работы в первом примере? Нет никаких ошибок или предупреждений, чтобы сказать вам это, и я не могу найти что-либо в документации об этом, может быть, это ошибка?

ответ

0

Вам нужно показать нам больше кода. Можете ли вы дать следующий код выстрел? Это работает?

<?xml version="1.0" encoding="utf-8"?> 
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"> 
    <!-- Simple exemplo to demonstrate the AnimateProperty effect. --> 

    <mx:Sequence id="animateScaleXUpDown" > 
     <mx:AnimateProperty property="scaleX" fromValue="{ns.value}" toValue="{ns.minimum}" duration="1000" /> 
     <mx:AnimateProperty property="scaleX" fromValue="1.5" toValue="1" duration="1000" />  
    </mx:Sequence> 

    <mx:Panel title="AnimateProperty Effect Example" width="75%" height="75%" 
     paddingTop="10" paddingLeft="10" paddingRight="10" paddingBottom="10"> 

     <mx:Text width="100%" color="blue" 
      text="Click on the image to use the AnimateProperty effect with the scaleX property."/> 

     <mx:Image id="flex" source="http://stackoverflow.com/content/img/stackoverflow-logo.png" 
      mouseDownEffect="{animateScaleXUpDown}"/> 
     <mx:NumericStepper id="ns" width="62" value=".5" minimum="1" maximum="3" stepSize="0.5" enabled="true"/> 

    </mx:Panel> 

</mx:Application> 
+0

Да, извините. И originalWidth, и scaleFactor являются связываемыми. –

+0

Можете ли вы собрать очень маленький фрагмент кода, который демонстрирует вашу проблему? – dirkgently

+0

К сожалению, мне придется бежать из офиса сейчас, но завтра я создам небольшое демо-приложение, которое освещает проблему. –