flash,as3,怎样写一段代码,将几个元件随机数量,添加到舞台上的随机位置,而且大致均匀分布在舞台上? 100
4个回答
展开全部
大致均匀分布这个比较麻烦。如果你的元件有 17 个,摆成1行太长,摆成2行、3行、4行都无法对称。除非以场景正中为中心点,所有元件进行环形分布。
import flash.display.MovieClip;
var mcArr:Array = [];
var i:int = Math.random() * 20 + 1;
var mc:MovieClip;
for(var n:int = 0;n < i;n++)
{
mc = new MC();//MC是你的影片剪辑的链接名
addChild(mc);
mcArr.push(mc);
}
if(mcArr.length == 1)
{
mcArr[0].x = stage.stageWidth / 2;
mcArr[0].y = stage.stageHeight / 2;
}
else
{
var num:Number = Math.min(stage.stageWidth / 2,stage.stageHeight / 2);
var ran:Number = num * 0.8 * Math.random() + num * 0.2;
var rot:Number = 0;
for(var l:int = 0;l < mcArr.length;l++)
{
rot = -90 + (360 / mcArr.length) * (l + 1);
mcArr[l].x = stage.stageWidth / 2 + ran * Math.cos(Math.PI * rot / 180);
mcArr[l].y = stage.stageHeight / 2 + ran * Math.sin(Math.PI * rot / 180);
}
}
展开全部
说个方法,你可以去实验下,适合AS3.0
创建一个MC,在库里起AS链接名为 card
var shuliang:uint = Math.floor(Math.random() * 100);
for (var i:uint=0; i<shuliang; i++) {
var mc:card=new card();
mc.x = Math.random() * 550;
mc.y = Math.random() * 400;
addChild(mc)
}
创建一个MC,在库里起AS链接名为 card
var shuliang:uint = Math.floor(Math.random() * 100);
for (var i:uint=0; i<shuliang; i++) {
var mc:card=new card();
mc.x = Math.random() * 550;
mc.y = Math.random() * 400;
addChild(mc)
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我觉得你说得像是找你妹里边的分布规律。。。可以去天地会搜找你妹。。下面是我找的一个链接,你看看,如果打不开再自己搜一下。
http://bbs.9ria.com/forum.php?mod=viewthread&tid=174934&highlight=%E6%89%BE%E4%BD%A0%E5%A6%B9
http://bbs.9ria.com/forum.php?mod=viewthread&tid=174934&highlight=%E6%89%BE%E4%BD%A0%E5%A6%B9
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
for(var i:int=0;i<100;i++)
{
mc[i].x = Math.random()*1000;
mc[y].y = Math.random()*1000
}
{
mc[i].x = Math.random()*1000;
mc[y].y = Math.random()*1000
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询