2012-02-09 55 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屬性不會將字符串值評估爲對象ID。你有目標元素結合,而不是(或者它會嘗試找物業endAngle對String "arc",這將引發你得到錯誤):

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

注意你的版本和我之間的唯一區別是花括號{}

+0

謝謝,我確實設法最終找到問題:) – 2012-02-09 12:41:40