今天发现在Flash的开发工具制作的flex元件,内部含有Tween的过渡。
代码如下:
function abc()
{
if(...)
{
...
var myTween:Tween = new Tween(mcObj, "width", Strong.easeOut, courseBarcrtLength.width, 34+500*crtP/totalP,4, true);
mcObj.width=34+500*crtP/totalP;
}
}
单独运行flash的控件 是正常的。
但是当使用flex调用 上述的方法abc()时。flex又连续做了很多操作,存数据,换viewstack的索引了等等。
此时发现tween根本就没有反应,(是tween根本没有运动完 或根本就没动)
原因:在flash的代码里。Tween的引用是局部变量,被垃圾回收机制回收了。
解决:将局部的变量,提至代码块的外面。