我正在尝试调整一些示例代码,并且在尝试用变量替换硬编码坐标时遇到了麻烦。
以下示例代码有效:
TweenMax.to(sp,
5,
{bezierThrough:[{x:250,y:100},{x:50,y:200},{x:500,y:200}],
onUpdate:drawme,
onUpdateParams:[sp]});
但是当我尝试用变量替换bezier点时,我得到一个运行时错误,说Shape的属性0不存在。 sp是Shape的类型。 (下面的完整错误)。
var centralLinePoints:Array = new Array();
for (var i:int = 0; i < data.nodes.length; i++)
{
var foo:Object = data.nodes[i].data.abc;
var bar:Number = data.nodes[i].data.def;
if (foo != null)
{
centralLinePoints.push({x: bar, y: foo});
}
}
TweenMax.to(sp,
5,
{bezierThrough:[centralLinePoints],
onUpdate:drawme,
onUpdateParams:[sp]});
我找到了这个文档:http://www.greensock.com/as/docs/tween/com/greensock/plugins/BezierThroughPlugin.html但我不确定隐含的是什么类型。
完整错误:
ReferenceError:错误#1069:在flash.display.Shape上找不到属性0,并且没有默认值。 在com.greensock.plugins :: BezierPlugin / init()[C:[...] \ greensock-as3 \ com \ greensock \ plugins \ BezierPlugin.as:99] 在com.greensock.plugins :: BezierThroughPlugin / onInitTween()[C:[...] \ greensock-as3 \ com \ greensock \ plugins \ BezierThroughPlugin.as:68]
[抱歉格式化]
答案 0 :(得分:2)
作为TweenMax.to
的第三个参数,您传递一个具有3个属性的对象。第一个是Array
个对象,x
和y
作为属性。
尝试删除方括号:
TweenMax.to(
sp,
5,
{
bezierThrough:centralLinePoints,
onUpdate:drawme,
onUpdateParams:[sp]
}
);
答案 1 :(得分:0)
对不起,我已经解决了 - 显然,centralLinePoints周围的方括号必须在我现有的数组周围定义一个数组或者那种性质。拿出来修好它。不知道sp周围的方括号是做什么的......因为我只是得到了一个基本的Shape参数给我的drawme函数。