as代码中加延时让下一段代码延迟3秒

萝卜的菠萝 2010-09-11 12:00:17
如下面代码,想要让
this.ball1._visible = false;
this.mid.gotoAndPlay(18);
这两句延迟3秒后程序继续该写怎样的代码呢?

switch (curAct)
{
case 0:
{
frmFix = GetBallColor(Number(_root.Num1));
this.attachMovie(frmFix, "ball1", 1);
curObj = this.ball1;
curObj.stop();
curObj._visible = false;
curObj._xscale = 100;
pid = setInterval(MoveToPlace1, 84);
break;
}
case 1:
{
this.ball1.gotoAndStop(frmFix add _root.Num1);
frmFix = GetBallColor(Number(_root.Num2));
this.attachMovie(frmFix, "ball2", 2);
curObj = this.ball2;
curObj.stop();
curObj._visible = false;
curObj._xscale = 100;
pid = setInterval(MoveToPlace2, 84);
this.ball1._visible = false;//这句延迟3秒
this.mid.gotoAndPlay(18);//这句延迟3秒

break;
}
.....后面的省略。
希望高手能够给予指点,本人是新手在网上找了很多方法都不会很好的使用。
...全文
700 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
nick848 2010-09-13
  • 打赏
  • 举报
回复
用setInterval()

setInterval(functionReference:Function, interval:Number, [param1:Object, param2, ..., paramN]) : Number
functionReference:Function ― 对要被调用的函数的引用。

interval:Number ― 对传入的 functionReference 或 methodName 函数的调用所间隔的时间(以毫秒为单位)。

如果 interval 小于 SWF 文件的帧频(例如,每秒 10 帧 [fps] 相当于 100 毫秒的间隔),则尽可能按照接近 interval 的时间间隔值调用间隔函数。在间隔期间执行大量耗费内存的长脚本将导致延迟。如果被调用的函数启动对可视元素的更改,您应使用 updateAfterEvent() 函数来确保屏幕刷新率足够高。如果 interval 大于 SWF 文件的帧频,则间隔函数仅在 interval 已到期并且 播放头已进入下一帧时才被调用;这就尽可能减轻了每次刷新屏幕时所产生的影响。

param:Object [可选] ― 向发送给 functionReference 或 methodName 的函数传递的参数。应该用逗号隔开多个参数:param1 , param2 , ..., paramN

objectReference:Object ― 一个对象,它包含由 methodName 指定的方法。

methodName:String ― 一个方法,它存在于由 objectReference 指定的对象的范围中。

返回
Number ― 一个整数,它标识间隔(间隔 ID),您可以将其传递给 clearInterval() 以取消间隔。

示例
示例 1:以下示例以 20 毫秒的间隔跟踪一条消息,最多跟踪达 10 次,然后清除该间隔。对象范围 this 作为第一个参数传入,方法名称 executeCallback 作为第二个参数传入。这可以确保 executeCallback() 是从调用的脚本的同一范围内执行的。


var intervalId:Number;
var count:Number = 0;
var maxCount:Number = 10;
var duration:Number = 20;

function executeCallback():Void {
trace("executeCallback intervalId: " + intervalId + " count: " + count);
if(count >= maxCount) {
clearInterval(intervalId);
}
count++;
}

intervalId = setInterval(this, "executeCallback", duration);


示例 2:下面的示例与第一个示例类似,只是它先调用 clearInterval(),然后才调用 setInterval()。这有助于防止不需要的循环,并且在清除任何特定间隔之前可以多次执行启动脚本的基于事件的系统中尤其重要。


var intervalId:Number;
var count:Number = 0;
var maxCount:Number = 10;
var duration:Number = 20;

function executeCallback():Void {
trace("executeCallback intervalId: " + intervalId + " count: " + count);
if(count >= maxCount) {
clearInterval(intervalId);
}
count++;
}

function beginInterval():Void {
if(intervalId != null) {
trace("clearInterval");
clearInterval(intervalId);
}
intervalId = setInterval(this, "executeCallback", duration);
}

beginInterval();
beginInterval();
beginInterval();



示例 3:下面的示例说明如何将自定义参数传递给被调用的函数。


var intervalId:Number;
var count:Number = 0;
var maxCount:Number = 10;
var duration:Number = 20;
var colors:Array = new Array("red",
"blue",
"yellow",
"purple",
"green",
"orange",
"salmon",
"pink",
"lilac",
"powder blue",
"mint");

function executeCallback(param:String) {
trace("executeCallback intervalId: " + intervalId + " count: " + count + " param: " + param);
clearInterval(intervalId);
if(count < maxCount) {
count++;
intervalId = setInterval(this, "executeCallback", duration, colors[count]);
}
}

if(intervalId != null) {
clearInterval(intervalId);
}

intervalId = setInterval(this, "executeCallback", duration, colors[count]);



示例 4:下面的示例演示如何正确地从 ActionScript 2.0 自定义类使用 setInterval()。请注意,与前面的示例类似,this 传递给 setInterval() 函数以确保被调用的方法在正确的范围内执行。


class CustomClass {
private var intervalId:Number;
private var count:Number = 0;
private var maxCount:Number = 10;
private var duration:Number = 20;

public function CustomClass():Void {
beginInterval();
}

private function beginInterval():Void {
if(intervalId != null) {
trace("clearInterval");
clearInterval(intervalId);
}
intervalId = setInterval(this, "executeCallback", duration);
}

public function executeCallback():Void {
trace("executeCallback intervalId: " + intervalId + " count: " + count);
if(count >= maxCount) {
clearInterval(intervalId);
}
count++;
}
}



在新文档中,实例化新类的一个新实例:


var custom:CustomClass = new CustomClass();


摘自F1帮助 - -
luowei747 2010-09-13
  • 打赏
  • 举报
回复
把MID的第18帧前加个36帧左右的空白帧(假设每秒12帧的速率)。
萝卜的菠萝 2010-09-12
  • 打赏
  • 举报
回复
代码是as2.0的 用timer可用嘛?麻烦再说详细一些
diffmaker 2010-09-11
  • 打赏
  • 举报
回复
用Timer作
萝卜的菠萝 2010-09-11
  • 打赏
  • 举报
回复
高手在哪里

2,275

社区成员

发帖
与我相关
我的任务
社区描述
多媒体/设计/Flash/Silverlight 开发 Flash流媒体开发
社区管理员
  • Flash流媒体开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧