WEB开发网      濠电娀娼ч崐濠氬疾椤愶附鍋熸い鏍ㄧ〒闂勫嫰鏌﹀Ο渚Ц闁诲氦顕ч湁婵犲﹤楠告禍鍓х磼鏉堛劌绗氶柟宄版嚇閹晠宕归銈嗘濠电偞鍨堕幐鎾磻閹捐秮褰掓偐閻戞﹩妫勯梺鎼炲妼鐎涒晝绮嬪澶樻晝闁挎繂鏌婇敃鍌涚厵閻庢稒锚閻忥絾绻濇繝鍐ㄧ伌闁诡垰鍟村畷鐔碱敂閸♀晙绱樺┑鐐差嚟婵儳螞閸曨剚鍙忛柍鍝勬噹缁€澶嬬箾閹存繄锛嶆鐐灲閹綊宕惰濡插鏌涢妸銉ヮ劉缂佸倸绉归弫鎾绘晸閿燂拷 ---闂備焦瀵уú鈺呭箯閿燂拷
开发学院图形图像Flash [AS 功能代码教程07] 百变图 阅读

[AS 功能代码教程07] 百变图

 2009-05-30 12:07:16 来源:WEB开发网 闂備線娼уΛ鎾箯閿燂拷闂備礁鎲¢崹鐢垫崲閹扮増鍎嶆い鎺戝€甸崑鎾斥槈濞嗗秳娌紓鍌氱▌閹凤拷濠电姭鎷冮崨顓濈捕闂侀潧娲ゅú銊╁焵椤掍胶鈯曢柕鍥╁仧缁辩偤鏁撻敓锟�闂備線娼уΛ鎾箯閿燂拷  闂備胶枪缁绘鈻嶉弴銏犳瀬闁绘劕鎼痪褔鏌曟繝蹇曠窗闁煎壊浜滈—鍐偓锝庡墮娴犙勭箾閸喎鐏ユい鏇樺劦椤㈡瑩鎮℃惔銇帮拷
核心提示:思路:1.createEmptyMovieClip(MC),位于舞台中央,使之不断旋转;2.用MC作载体,复制出num(150)个(p0~p149)影片,全部都依附于MC上;3.AS中共有2个函数(function),分别为Change()和getShape():Change():首先,获得一个随机图形编号(shape

思路:1.createEmptyMovieClip(MC),位于舞台中央,使之不断旋转;

2.用MC作载体,复制出num(150)个(p0~p149)影片,全部都依附于MC上;

3.AS中共有2个函数(function),分别为Change()和getShape():

Change():首先,获得一个随机图形编号(shape),然后为所有MC["p"+i]点设置大小及透明度,再调用getShape()获得该点的目标坐标;

getShape():根据shape编号,返回组成该图形的目标坐标;

4.用数组PS[0]存X坐标,PS[1]存Y坐标;

5.MC["p"+i].onEnterFrame:"跑"向各自的目标点.

步骤1:

绘制 10 * 10 的圆点,保存为影片剪辑,连接—>导出—>标志符"p"

步骤2:

加入AS代码:

_root.createEmptyMovieClip("MC", 10);
MC._x = 200;
MC._y = 150;
MC.onEnterFrame = function() {
 this._rotation += 2;
};
var num:Number = 150;
//圆点p的个数
for (i = 0; i < num; i++) {

 MC.attachMovie("p", "p"+i, i);
}
var PS:Array = new Array(2);
//PS[0]存储X坐标,PS[1]存储Y坐标.
_root.onMouseDown = function() {
 Change();
//鼠标点击后变换图形
};


function Change() {
 var shape = int(Math.random()*2);

//获得随机图形
 for (i=0; i < num; i++) {

  p = MC["p"+i];
  p._xscale = p._yscale = 50 + Math.random() * 50;
  p._alpha = 50 + Math.random() * 50;
  getShape(shape);
  p.tox = PS[0];
  p.toy = PS[1];
//调用getShape()函数后,获得MC["p"+i]的X,Y目标坐标
  p.onEnterFrame = function() {
   this._x += 0.1 * (this.tox - this._x);
   this._y += 0.1 * (this.toy - this._y);
//点MC["p"+i] 向目标坐标移动, 移动步长为0.1*(目标坐标 - 当前坐标);
//越接近目标,步长越小。最终,当前坐标=目标坐标,不再移动。
  };
 }
}


function getShape(shape) {

//用shape的值作为判断图形的依据
 var R:Number = 100;
 var angle:Number = Math.random() * 360 * Math.PI / 180;
 switch (shape) {
//====================直线======================
 case 0 :
  PS[0] = -R + random(R * 2);
  PS[1] = 0;
  break;
//====================圆======================
 case 1 :
  PS[0] = R * Math.cos(angle);
  PS[1] = R * Math.sin(angle);
  break;
 }
}

1 2 3 4  下一页

Tags:AS 功能 代码

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接