我是AS3的新手& Flash和不知道是否有人可以看看这个测试片。AS3动态加载和自动滚动随机大小Movieclips
在我的Flash文件中,我有许多动画片段随机按动按钮时动态添加到舞台上。所有的动画片段宽度相同,但高度不同,所有动画片段的注册点位于左下角(我在此阶段仅用于测试目的)。
我想要做的是'自动'(而不是使用按钮)从库中向舞台添加一串随机选择的mc's(也就是说mc应该连续添加 - 即一个另一个没有间隙),从舞台顶部向底部垂直向下自动滚动(以永不停止的传送带形式),然后在舞台上不再可见时返回到图书馆。
任何人有任何想法。
//mc's are dynamically loaded & returned to the library
//mc's have 'export for Actionscript' property
//mc's have their anchor point placed bottom left
//stop all
stop();
//Speed of the vertical auto-scroll movement
var scrollSpeed:uint = 1;
//auto load random mc from library & place top left corner of stage
//load random mc via button for test purposes
McButton.addEventListener(MouseEvent.CLICK,attachMovieclip);
function attachMovieclip(event:MouseEvent):void{
//create a random number for choosing a mc from the array
var newNumber:int = (Math.random()*14)
//define the mc's
var mc1:Red01 = new Red01();
var mc2:Red02 = new Red02();
var mc3:Red03 = new Red03();
var mc4:Orange01 = new Orange01();
var mc5:Orange02 = new Orange02();
var mc6:Orange03 = new Orange03();
var mc7:Yellow01 = new Yellow01();
var mc8:Yellow02 = new Yellow02();
var mc9:Green01 = new Green01();
var mc10:Green02 = new Green02();
var mc11:Blue01 = new Blue01();
var mc12:Blue02 = new Blue02();
var mc13:Purple01 = new Purple01();
var mc14:Purple02 = new Purple02();
//create an array which holds all the mc's
var Mcarray:Array = newArray(mc1,mc2,mc3,mc4,mc5,mc6,mc7,mc8,mc9,mc10,mc11,mc12,mc13,mc14);
//add child (or random mc) to the stage
addChild(Mcarray[newNumber]);
//place mc at specific starting point coordinate - i.e. top of the stage
Mcarray[newNumber].x=0
Mcarray[newNumber].y=0
//trace mc random numeric value for test purposes
trace(newNumber);
//auto-scroll the randomly chosen mc vertically down the stage
stage.addEventListener(Event.ENTER_FRAME, moveScroll);
function moveScroll(e:Event):void{
Mcarray[newNumber].y += scrollSpeed;
//once first mc is completley on stage load the next random mc
//once a mc has completely left the bottom of the stage return it to the library
}
}
非常感谢您的意见,我会给你的想法一个旋转,看看我可以进步多远。 – Attila66 2013-05-02 06:47:25
哎呀,我只是重新读你的问题,我以为你的注册点是左上角。同样的逻辑适用,但将新剪辑的高度更改为0,并检查剪辑是否离屏,y等于(或更大)舞台高度+对象高度。 – mitim 2013-05-02 07:29:16
已添加检查以确定mc的全部高度何时可见&'在舞台上',以及mc的全高度是否不可见&'关闭舞台'且两个功能都正常。 我还添加了一个删除子语句,这样当mc变得不可见时,它将从舞台上移除并返回到库中。这以可视的方式工作(即mc从舞台消失),但根据输出结果,mc(尽管不可见)仍然存在并且在进一步超过可见的阶段极限之后行进。 – Attila66 2013-05-04 03:59:33