Flash As3.0,MC在舞台随机生成并移动,但舞台上的MC少于一定量,则重新执行随机生成MC代码。
2个回答
展开全部
这是什么概念,正常来说都是设计EnterFrame响应函数,然后控制数量,你怎么要求少于一定的数量以后再解发生成函数?以我的知识来说只能这样:
先定义一个容器:container;
向它里加入MC。用时间间隔函数或EnterFrame响应函数监视container里MC的数量。
少于一定值触发生成MC函数,这个函数可以一次生成一个,或若干个。
不过你这么设计没有必要,像这样:
import flash.display.MovieClip;
import flash.events.Event;
import flash.display.Sprite;
import flash.events.MouseEvent;
var i:uint = 0;
var container:Sprite=new Sprite();
addChild(container);
addEventListener(Event.ENTER_FRAME,onenterframe);
function onenterframe(e:Event):void
{
var namestar:MovieClip=new star(); //star 是库里的一个元件,自己画出来的。
namestar.x = Math.random() * 280 + 50;
namestar.y = Math.random() * 50 + 60;
container.addChild(namestar);
if (i>=20)
{
i = 20;
container.removeChildAt(0);
}
else
{
i++;
}
}
先定义一个容器:container;
向它里加入MC。用时间间隔函数或EnterFrame响应函数监视container里MC的数量。
少于一定值触发生成MC函数,这个函数可以一次生成一个,或若干个。
不过你这么设计没有必要,像这样:
import flash.display.MovieClip;
import flash.events.Event;
import flash.display.Sprite;
import flash.events.MouseEvent;
var i:uint = 0;
var container:Sprite=new Sprite();
addChild(container);
addEventListener(Event.ENTER_FRAME,onenterframe);
function onenterframe(e:Event):void
{
var namestar:MovieClip=new star(); //star 是库里的一个元件,自己画出来的。
namestar.x = Math.random() * 280 + 50;
namestar.y = Math.random() * 50 + 60;
container.addChild(namestar);
if (i>=20)
{
i = 20;
container.removeChildAt(0);
}
else
{
i++;
}
}
追问
如果按你说用EnterFrame响应函数。控制数量的话,那代码应该是怎么样?
展开全部
你的意思是不是当mc移出舞台的时候,再重新出现?要是这样,不用重新生成,否则会加重系统负担,其实到是很简单的,只要让它重新回来就可以了,如果有什么不懂的联系我。
更多追问追答
追问
怎么联系你喔?
追答
import flash.events.Event;
//假如你舞台上有20个影片剪辑,我也不知我是用啥函数实现的,我只能大概说明一个原理,你自己理解,以下是我控制20个影片剪辑的过程,假如你所有的影片剪辑实例名都是mc0.....mc19;
//先初始化
var mcN:uint = 20;
var stageW:Number = stage.stageWidth;
var stageH:Number = stage.stageHeight;
for (var i:uint=0; i stageW + this["mc" + i].width)
{
this["mc"+i].x=-this["mc"+i].width;
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询