我创建了一个自定义计时器组件,它基本上呈现一个圆形扇区,具有默认的起始角度(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:value不是函数..
有没有其他人遇到过这个问题,或者更好的是,有没有人知道我做错了什么以及如何解决这个问题?
谢谢。
答案 0 :(得分:0)
Animate#target
属性不会将字符串值计算为对象ID。你必须改为绑定目标元素(或者它会尝试在字符串endAngle
上找到属性"arc"
,这会抛出你得到的错误):
<s:Animate id="effect" duration="2000" target="{arc}">
<s:SimpleMotionPath property="endAngle" valueFrom="90" valueTo="180" />
</s:Animate>
请注意,您的版本与我的版本之间的唯一区别是花括号{}