旋轉的flash花朵

 先看下最終效果:
本課中的內容涉及:函數定義, for...in 語句, .onEnterFrame 三個關鍵內容,函數的作用是實現代碼的重用,配合for...in語句可批量賦予函數.望初學者仔細閱讀.
[1b]思路:
[/1b]1.使用for...in語句遍歷整個主場景(_root)中所有的對象;
2.找到他們(如_root[k]),併爲他們的不同方法指定不同函數;
[1b]步驟1:[/1b]
    在主場景放入若干個影片剪輯,不需要爲他們起實例名。
[1b]步驟2:[/1b]加入AS代碼:
var F1:Function = function () {
 this.startDrag(false);
};
var F2:Function = function () {
 this.stopDrag();
};
var F3:Function = function () {
 this._rotation += this.speed;
};
//定義三個函數:
// F1完成對象開始拖拽功能;
// F2完成對象停止拖拽功能;
// F3完成對象自轉功能,速度爲每個對象各自的speed*/
for (var k in _root) {
 _root[k].speed = random(20);
 _root[k].onPress = F1;
 _root[k].onRelease = F2;
 _root[k].onEnterFrame = F3;
}
//遍歷主場景,爲每個MC設置speed屬性及onPress,onRelease.onEnterFrame方法。
[1b]Flash充電1:[/1b]兩種定義函數的方法
(1)函數語句定義法:如
function Testadd(a, b) {
 return a+b;
}(2)函數表達式定義法:如
var Testadd:Function = function (a, b) {
 return a+b;
};平時,應當儘量使用函數語句定義[方法1],這種定義方法更加標準,也更簡捷。[1b]區別:[/1b]方法2,需要先定義、後調用;方法1,可以先調用,後寫定義。
[1b]Flash充電2:[/1b]for...in 用來枚舉一個集合中所有的元素,多用於遍歷(檢索)如:XML,數組,Object甚至_root或MC等等,功能非常強大。本課中,我們用它來遍歷整個_root。
[1b]例1:
[/1b]var Car = {brand:"M6", color:"red", engine:2000};
for (var k in Car) {
 trace(k+"="+Car[k]);
}
// 輸出結果:
//  brand=M6
//  color=red
//  engine=2000
[1b]例2:
[/1b]//首先,在主場景中放入四個影片剪輯
for (var k in _root) {
 trace(_root[k]);
}
//輸出結果:
//_level0.instance4
//_level0.instance3
//_level0.instance2
//_level0.instance1
我們注意到,即使不給_root中的MC命名,FLASH編譯器也自動爲MC命名的,前面的_level10指該元件的深度爲10.
[1b]Flash充電3:[/1b] .onEnterFrame
(1) onEnterFrame是AS動畫和遊戲製作的靈魂。
(2) 當我們在主場景第一幀寫入onEnterFrame=function(){...}時,實際上Flash編譯器會自動在前面加上_root變爲_root.onEnterFrame。
(3)重要:MovieClip.onEnterFrame=function(){...}形式。這種形式可以讓MC獨立地運行onEnterFrame。例:
//首先主場景上有三個影片剪輯,實例名分別爲MC1,MC2,MC3。//
MC1.speed = random(10);
MC2.speed = random(10);
MC3.speed = random(10);
MC1.onEnterFrame = function() {
 MC1._rotation += MC1.speed;
本文轉自:http://www.5uflash.com/flashjiaocheng/Flashdonghuajiaocheng/1295.html
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章