2010-01-25 63 views
2

我有一堆不同的补间进行在不同的影片剪辑,但似乎有时候补间会在我的过渡期间中途冻结。as3,闪存缓存过渡冻结

这家伙有同样的问题,他的问题得到回答,但我也不太清楚他们的意思到底是什么的时候,他们告诉他该怎么做: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

这篇文章在您引用的论坛中意味着他们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事件处理函数,但而是它与功能本身在相同的范围内。

我最大的建议是尝试使用不同的补间库,那里有TONS。在闪光补间的内置库留下了很多恕我直言。我想看看一个或更多的这些:

TweenLite

Tweener

GTween

AS3 Animation System

还有更多......只是来看看

+0

我肯定会尝试一下。我仍然对as3相当陌生,但我将不得不考虑这些。谢谢。 – 2010-01-25 17:42:51

+0

定时器是否应该以同样的方式放在函数之外? – 2010-01-25 18:34:00

0

其实,我想出什么其他人说的话。 我必须在功能之外移动补间变量,是有道理的。 开始时很难看到代码的不同。 也意识到这是不好的示例代码使用,因为没有功能。