太久没有回来看了,有好一阵子网站基本处于打不开,也搜索不到的状态,以为就它这么消失了。忽然有一天,一封救助Flash的邮件让我知道网站又回来了,如同之前很多次的起死回生一样,吾弟(5d)又回来了。
总排行上,我的博客还是前十,基本有两年多没有更新了,期间工作关系,全然没有余力来更新一下flash的知识。最近一年倒是论文写作的需要,捡起flash来做课题的软件验证,倒也用得比较顺手。
无论哪个行业,做课题就必须掌握一门编程语言,无论它是网页工具还是动画工具,理论上升到逻辑验证阶段时,懂一门编程是多么的方便啊。
感谢不知名的网友发来的邮件,让我又回到这里重温一下过去与flash一起的美好日子。做为回报,我把程序代码发在下面供大家参考。
程序功能:元件库中有多张图片,利用属性绑定相应的类名(BDexcel、BDfla等),将这些图片依次摆20个到屏幕上,点击屏幕,图片的位置发生随机的调整。
关键点:
1、图片绑定类名,在调用时用 new 来生成,加载到bitmap类实例中使用。
2、图片全部存储到一个picArr 数组中。
3、图片的坐标数据保存到oldPsn数组中,对数组进行打乱顺序的操作,再利用这个数组将图片位置刷新。
import flash.display.BitmapData;
import flash.display.Bitmap;
import flash.events.MouseEvent;
var picArr:Array = new Array();
var bmd:BitmapData;
var bm:Bitmap;
for (var i:int =0; i<20; i++)
{
var rand:int = Math.random() * 100 % 4;//随机生成1至4,用来加载不同图片。
switch (rand)
{
case 0 :
bmd = new BDexcel();
break;
case 1 :
bmd = new BDflash();
break;
case 2 :
bmd = new BDhtml();
break;
case 3 :
bmd = new BDfla();
break;
default :
trace("Not 0, 1, 2 or 3");
}
bm = new Bitmap( bmd);
bm.scaleX = bm.scaleY = 0.5;//缩小图片。
bm.x =80*(i%5); //横向排开
bm.y = 80*Math.floor(i/5);//纵向排开
addChild( bm );
picArr.push( bm );
}
stage.addEventListener(MouseEvent.CLICK,changPicPosition);
function changPicPosition(evt:MouseEvent){
trace("it's ok");
var oldPsn:Array = new Array();
for (var i:int =0; i<20; i++){//读取图片的坐标数据。
oldPsn.push([picArr[i].x,picArr[i].y]);//用数组保存图片的原始坐标数据,实际上是一个二维数组,按照一维来用。
}
for( var j:int =0; j< 40;j++){
var firstPic:int = Math.random()*1000%oldPsn.length;//在数组中找到第一张图片的序号
var secondPic:int = Math.random()*1000%oldPsn.length;//在数组中找到第二张图片的序号
var tempPsn:Array = oldPsn[firstPic];//用数组转移的办法,将坐标数据[x,y]传递给中间变量。
oldPsn[firstPic] = oldPsn[secondPic];
oldPsn[secondPic] = tempPsn;//Flash中比较随意的就是数组直接可以等于另一个数组,简单实现内容替换。
}
for ( i =0; i<20; i++){//刷新图片位置。
picArr[i].x = oldPsn[i][0];
picArr[i].y = oldPsn[i][1];
}
}
回复Comments
作者:
{commentrecontent}