你可以做一个名为sleep()的函数,它会为你做延迟,当它完成时你可以让它调用另一个函数来移动和缩放你的文本字段,在我的例子中我称之为@987654323 @(因为您可能使用的是矢量字体,所以缩放效果很好)。这可能看起来像这样:
首先将此导入语句添加到代码的顶部(假设这是在时间轴中完成的):
import flash.utils.getTimer;
然后使用我们即将创建的 sleep() 函数更新您的 frameHandler():
function frameHandler(event:Event):void{
if(myArray.length > 0) {
whiteText.appendText(myArray.shift());
} else {
removeEventListener(Event.ENTER_FRAME, frameHandler) ;
sleep( 3 ); //run for a 3 second delay, then call moveAndScaleText()
}
}
sleep 函数将采用时间参数,以秒为单位。完成后会调用moveAndScaleText函数
function sleep( secondsDelay:int ):void {
var currentTime:int;
var startTime:int = getTimer();
var delay:int = secondsDelay * 1000; //convert seconds to ms
while( currentTime - startTime < delay ) {
currentTime = getTimer();
}
moveAndScaleText(); //call our last function scale text
}
现在用于缩放和移动文本字段。如果您使用TweenMax Library,您可以通过几种不同的方式来执行此操作:在一行代码中您可以移动和缩放:
function moveAndScaleText():void {
TweenMax.to( whiteText, 2, { x: 300, scaleX:2, scaleY: 2} );
}
这会将其 X 和 Y 缩放为 2,并将其移动到 300 的 x 位置。显然,这将需要下载该库并将其添加到您的项目中。所以另一种方法是使用fl 包。为此,您将这些导入语句添加到代码部分的顶部:
import fl.transitions.Tween;
import fl.transitions.easing.*;
然后在moveAndScaleText() 你这样做:
function moveAndScaleText():void {
new Tween( whiteText, "x", Regular.easeIn, whiteText.x, 300, 3, true );
new Tween( whiteText, "scaleX", Regular.easeIn, 1, 2, 3, true );
new Tween( whiteText, "scaleY", Regular.easeIn, 1, 2, 3, true );
}
这基本上是在说...
这将是您以编程方式实现它的最简单方法。另一种方法是使用Event.ENTER_FRAME,然后移动TextField 并按一定比例缩放,直到达到所需的值。我不会写这个,因为我认为这可能很明显,但我可以对其进行伪编码。如果你走这条路,在你的 Event.ENTER_FRAME 函数中,你会有这样的语句:
if ( whiteText.scaleX < 2 ) {
whiteText.scaleX += 0.1;
whiteText.scaleY += 0.1;
}
if ( whiteText.x < 300 ) {
whiteText.x += 1;
}
您可以通过以下几种方式完成该任务。如果是我,我可能会选择 Tween 或 TweenMax 路线,因为它们最适合程序化动画。祝你好运!