2

我在不同的电影剪辑中有一堆不同的补间,但似乎有时补间会在我的过渡过程中冻结。

这个人有同样的问题,他的问题得到了回答,但我不太确定他们告诉他该怎么做时他们的意思:http ://www.actionscript.org/forums/showthread.php3?t=222606

我是否必须在根目录中的站点的开头导入补间类,然后在每个影片剪辑中引用这些补间类,而不是分别导入每个影片剪辑中的类?

这是我的一个电影剪辑中的补间示例:

// Import classes
import fl.transitions.Tween;
import fl.transitions.easing.*;

// Bring in elements with tweening
var bandY:Tween = new Tween(band, "y", Strong.easeOut, 533, 259, 3, true);
var boxY:Tween = new Tween(box, "y", None.easeOut, -122, 0, 1, true);
var signY:Tween = new Tween(sign, "y", Regular.easeOut, 551, 224, 1.5, true);
var signX:Tween = new Tween(sign, "x", Regular.easeOut, -17, 82, 1.5, true);
var dragonMaskWidth:Tween = new Tween(dragonMask, "width", Regular.easeOut, 30, 500, 3, true);
4

2 回答 2

4

您引用的论坛中的帖子的意思是他们的 OP 应该尝试为补间创建非局部变量。所以,而不是这样做

function onClick(e:MouseEvent):void
{
    nextPage = e.currentTarget.mcTarget;
    var theTween:Tween = new Tween(currentPage,"alpha",Strong.easeOut,1,0,1,true);
    theTween.addEventListener(TweenEvent.MOTION_FINISH, onTween);
}

他们说要试试这个:

var theTween:Tween;  
function onClick(e:MouseEvent):void
{
    nextPage = e.currentTarget.mcTarget;
    theTween = new Tween(currentPage,"alpha",Strong.easeOut,1,0,1,true);
    theTween.addEventListener(TweenEvent.MOTION_FINISH, onTween);
}

通过这样做,变量“theTween”的范围不是 onClick 事件处理函数的本地,而是与函数本身在同一范围内。

我最大的建议是尝试使用不同的补间库,那里有很多。恕我直言,Flash 中用于补间的内置库还有很多不足之处。我会看一下其中的一个或多个:

TweenLite

吐温

吐温

AS3 动画系统

还有很多……看看就好

于 2010-01-25T17:39:05.777 回答
0

其实,我听懂了对方在说什么。我必须将补间变量移到函数之外,这是有道理的。一开始很难看出他们的代码有什么不同。还意识到这是不好的示例代码,因为没有函数。

于 2010-01-25T17:38:40.750 回答