flash 随机图片 求代码

[复制链接]
查看11 | 回复3 | 2011-12-31 06:26:28 | 显示全部楼层 |阅读模式
在一个flash文件中,加载10张图片,如图,在第一组三个框内放置三张图片,要求其中一张为指定的图片,但位置随机,另外两张图片从剩下的九张图片中随机取得的,其它两组的要求一样。求用as3实现代码
回复

使用道具 举报

千问 | 2011-12-31 06:26:28 | 显示全部楼层
一个数组保存0-9的序号随机获取3个数,检测里面是否有2号图片,没有的话从3个数里面随机一个数被2替换,从0-9的数组里面剔除获取到的3个数把3个数显示出来如果3组都要这样的话把限制的数从0-9中提取出来做成数组(第一组要出现的图片,第二组要出现.......)从限制后的数组随机提取2个不重复的数,并从数组中删除他们(避免下次抽出)随机一个0-2的数用于把固定的数插入到开始中间后面显示被插入后的3个图片追问新手求代码
回复

使用道具 举报

千问 | 2011-12-31 06:26:28 | 显示全部楼层
varWmax:int=3;//一排3张图片varAllArr:Array=newArray(1,2,3,4,5,6,7,8,9,0);//存放所有随机数组*可以用加载获取外部列表varBmpArr:Array=newArray();//加载的图片,请加载后添加到此数组,与序号对应varMarr:Array=newArray(2,5,7);//存放需要内定显示的序号,可以用加载,如果内定的比较多可以用二维数组InitArr();//初始化数组ShowMC(1,getArr(1));//显示第一轮ShowMC(2,getArr(2));//显示第二轮ShowMC(3,getArr(3));//显示第三轮stop();//--------------------下面是函数---------------------------functionShowMC(n:int,Arr:Array){//根据Arr数组依次显示第n轮的图片for(variinArr){trace(\"第\"n\"排,图片\"i\":加载序号为\"Arr\"的图片。\");//如何显示不用我说吧调用addChild(BmpArr[Arr])}}functionInitArr(){//初始化数组,剔除被内定的项目序号,如果是二维数组下面代码需要更改for(variinMarr){AllArr.splice(AllArr.indexOf(Marr),1);//在主数组中删除内定序号Marr}}functiongetArr(n:int):Array{//根据输入的序号返回随机后的数组,n为第几组varLen:int;varNum:int=Wmax-1;//提取的数量,if(Marr.lengthn){Num=Wmax;//内定的用完了....}vartemArr:Array=newArray();//要返回的数组varK:int=0;//临时变量,用于存储随机的序号位置,方便删除随机出的值for(vari:int=0;iNum;i){//循环提取随机的值Len=AllArr.lenght;//获取剩余数量if(Len){K=int(Math.random()*Len);//随机一个提取值temArr.push(AllArr[k]);//提取随机序号添加到数组AllArr.splice(K,1);//删除已经提取了的序号,避免重复}}//现在temArr中包含了0-2个值了if(NumWmax){//如果提取的数量不是最大说明使用了内定于是加入....Len=temArr.lenght;K=int(Math.random()*Len);//随机一个位置以插入我特定的值temArr.splice(K,0,Marr[n]);//删除0个并插入值}returntemArr;}加分加分呵呵
回复

使用道具 举报

千问 | 2011-12-31 06:26:28 | 显示全部楼层
flash.display.Bitmap;importflash.display.//将图片放入一个数组varbtn:Button=newButton(//产生随机数1,2,3,0varbitmap:Bitmap=追问比如十张图片编号为1,2,3,4,5,6,7,8,9,0,2号图片必须在第一组出现怎么实现
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行