2012-02-09 3 views
0

я создал пользовательский компонент таймер, который в основном оказывает круговой сектор с углом старта по умолчанию (0) и конечный угол:Как оживить пользовательский графический компонент свойство

public class Arc extends FilledElement 
{ 
    private var _endAngle:Number = 0; 

    public function Arc() 
    { 
    } 

    public function get endAngle():Number 
    { 
     return _endAngle; 
    } 

    public function set endAngle(value:Number):void 
    { 
     if (_endAngle == value) 
      return; 

     _endAngle = value; 
     invalidateDisplayList(); 
    } 

    // left out the rendering logic, for clarity 
} 

работает отлично и франт так далеко. Данный код является сектором:

<org:Arc id="arc" 
    endAngle="135"> 
    <org:fill> 
     <s:SolidColor color="#FFFF00" /> 
    </org:fill> 
</org:Arc> 

Однако, я хочу анимировать свойство endAngle. Это MXML код, который стремится достичь этого:

<s:Animate id="effect" 
     duration="2000" 
     target="arc"> 
    <s:SimpleMotionPath property="endAngle" 
      valueFrom="90" 
      valueTo="180" /> 
</s:Animate> 

Проблема тогда, когда я играю эффект, я получаю эту ошибку: Ошибка: Свойство endAngle не является свойством или стиль на объект дуги: TypeError: Ошибка № 1006: значение не является функцией.

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

спасибо.

ответ

0

Свойство Animate#target не оценивает значения строк для идентификаторов объектов. Вы должны связать целевой элемент вместо (или он будет пытаться найти свойство endAngle на струне "arc", который отбросит ошибку вы получаете):

<s:Animate id="effect" duration="2000" target="{arc}"> 
    <s:SimpleMotionPath property="endAngle" valueFrom="90" valueTo="180" /> 
</s:Animate> 

Примечание единственное различие между вашей версией и моей это фигурные скобки {}

+0

Спасибо, мне удалось найти проблему в конце концов :) –

Смежные вопросы