在舞台新建一个影片剪辑,实例名为line,样子就随便画个长条
onEnterFrame 在FLASH 帮助文件中的说明
onEnterFrame(MovieClip.onEnterFrame 处理函数) onEnterFrame = function() {} 以 SWF 文件的帧频重复调用。分配给 onEnterFrame 事件处理函数的函数将在附加到受影响的帧上的所有 ActionScript 代码之前处理。 必须定义一个在调用事件处理函数时执行的函数。您可以在时间轴上定义该函数,也可以在扩展 MovieClip 类或链接到库中的元件的类文件中定义该函数。 一旦满足阻止 Flash Player 调用已定义函数的条件,将 onEnterFrame 事件处理函数的值设置为 null。 可用性:ActionScript 1.0、Flash Player 6 示例下面的示例为 onEnterFrame 事件处理函数定义一个函数,该函数将 trace() 动作发送到"输出"面板: my_mc.onEnterFrame = function () { trace("onEnterFrame called"); }
个人理解onEnterFrame的作用就是逐帧执行函数中的代码,以上范例就是逐帧增加this.line._width的值达到动画效果
function copybtn() { //此函数用来生成按钮 nums = 10;//复制的个数 for (var j = 1; j<=nums; j++) { //复制库里的mc,并将其置于舞台上,分配好各自的坐标 _root.attachMovie("round", "abc"+j+"_mc", 100+j); _root["abc"+j+"_mc"]._x = 19.5+30*(j-1); _root["abc"+j+"_mc"]._y = 186.5; } }
_root.attachMovie("round", "abc"+j+"_mc", 100+j); 这句是重点,三个参数分别为 round 库里面的元件的标示符,在库中选择元件,右键点击选择链接,按如下图设置
"abc"+j+"_mc" 这个是置于舞台后的实例名 100+j 这个是置于舞台后的深度,数字大的上面
实现这个效果真是一波三折,花了一天多实现在研究清楚
实现代码如下:
研究中出现的问题:
一、强制转换数据类型
a=String(b);
可以把b的类型转换成字符串赋予a
二、查看变量类型
trace(typeof(a));
可查看a的变量类型
var ad = "ad/1.swf"; container._lockroot = true; var my_mcl = new MovieClipLoader(); my_mcl.loadClip(_root.ad, _root.container);
说明:
ad为定义外部flash地址
container._lockroot = true;
flash的帮助文件中介绍如下:
一个布尔值,指定将 SWF 文件加载到影片剪辑中时 _root 引用的内容。默认情况下,_lockroot 属性为 undefined。您可以在正在被加载的 SWF 文件中或正在加载该影片剪辑的处理函数中设置此属性。
例如,假设您有一个名为 Games.fla 的文档,用于让用户选择要玩的游戏并将该游戏(例如 Chess.swf)加载到 game_mc 影片剪辑中。请确保,在加载到 Games.swf 中之后,在 Chess.swf 中对 _root 的任何使用都指向 Chess.swf 中的 _root(而非 Games.swf 中的 _root)。如果对 Chess.fla 具有访问权限并将其发布到 Flash Player 7 或更高版本,则可以将此语句添加到 Chess.fla 的主时间轴上
my_mcl.loadClip(_root.ad, _root.container);中前面是flash地址,后面是想要在哪里调用。
源码下载:flash外部调用.rar
最近评论