急求Flash AS3.0中把影片剪辑放入数组的源码,求大神帮看看!
答案:2 悬赏:80 手机版
解决时间 2021-11-23 05:23
- 提问者网友:欲望失宠
- 2021-11-22 16:26
急求Flash AS3.0中把影片剪辑放入数组的源码,求大神帮看看!
最佳答案
- 五星知识达人网友:七十二街
- 2021-11-22 17:20
根据你说的,我写了一个亲测可以。
这里其实主要是链接名字太多了,不方便放,其实可以用我下面的方法,但是AS链接对象都必须是MC
import flash.display.DisplayObject;
import flash.display.Sprite;
import flash.utils.getDefinitionByName;
import flash.display.MovieClip;
import flash.events.MouseEvent;
var classArr:Array = []; //所有类名称的数组(String数组)
var i:int = 0; //循环计数器
var currentMc:MovieClip; //当前显示的MC
var currentClassIndex:int = 0;//当前显示的MC的链接名在classArr中的索引
for(i = 1 ; i < 5 ; i ++) //我只做了5个mc测试,你可以改为100
{
var classStr:String = i.toString();
while(classStr.length < 3)
{
classStr = "0" + classStr;
}
classArr.push("MC" + classStr);
}
//将所有链接名放入数组
btn.addEventListener(MouseEvent.CLICK, clickHandler);
//设btn为你需要点击的按钮
function clickHandler(evt:MouseEvent):void
{
if(currentMc && currentMc.stage) //如果MC已经存在,则移除
{
removeChild(currentMc);
}
var newIndex:int;
do
{
newIndex = int(Math.random() * classArr.length);
}
while(newIndex == currentClassIndex); //找到下一个不一样的AS链接
var ClassReference:Class = getDefinitionByName(classArr[newIndex].toString()) as Class; //获取AS链接名对应的类!!!这里是关键
var instance:Object = new ClassReference();
currentMc = MovieClip(instance); //重新初始化MC
addChild(currentMc);
currentClassIndex = newIndex; //加入显示列表,更新索引
}
这里其实主要是链接名字太多了,不方便放,其实可以用我下面的方法,但是AS链接对象都必须是MC
import flash.display.DisplayObject;
import flash.display.Sprite;
import flash.utils.getDefinitionByName;
import flash.display.MovieClip;
import flash.events.MouseEvent;
var classArr:Array = []; //所有类名称的数组(String数组)
var i:int = 0; //循环计数器
var currentMc:MovieClip; //当前显示的MC
var currentClassIndex:int = 0;//当前显示的MC的链接名在classArr中的索引
for(i = 1 ; i < 5 ; i ++) //我只做了5个mc测试,你可以改为100
{
var classStr:String = i.toString();
while(classStr.length < 3)
{
classStr = "0" + classStr;
}
classArr.push("MC" + classStr);
}
//将所有链接名放入数组
btn.addEventListener(MouseEvent.CLICK, clickHandler);
//设btn为你需要点击的按钮
function clickHandler(evt:MouseEvent):void
{
if(currentMc && currentMc.stage) //如果MC已经存在,则移除
{
removeChild(currentMc);
}
var newIndex:int;
do
{
newIndex = int(Math.random() * classArr.length);
}
while(newIndex == currentClassIndex); //找到下一个不一样的AS链接
var ClassReference:Class = getDefinitionByName(classArr[newIndex].toString()) as Class; //获取AS链接名对应的类!!!这里是关键
var instance:Object = new ClassReference();
currentMc = MovieClip(instance); //重新初始化MC
addChild(currentMc);
currentClassIndex = newIndex; //加入显示列表,更新索引
}
全部回答
- 1楼网友:轻熟杀无赦
- 2021-11-22 18:53
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯