Flash教程:旋转花朵效果的制作,Flash教程:旋转花朵效果的制作
【 tulaoshi.com - Flash 】
效果演示:
[next]
本课中的内容涉及:函数定义, for...in 语句, .onEnterFrame 三个关键内容,函数的作用是实现代码的重用,配合for...in语句可批量赋予函数.望初学者仔细阅读.
思路:
1.使用for...in语句遍历整个主场景(_root)中所有的对象;
2.找到他们(如_root[k]),并为他们的不同方法指定不同函数;
步骤1:
在主场景放入若干个影片剪辑,不需要为他们起实例名。
步骤2:
加入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方法。
[next]
Flash充电1:
两种定义函数的方法
(1)函数语句定义法:如
function Testadd(a, b) {(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/flash/)
(2)函数表达式定义法:如
var Testadd:Function = function (a, b) { 
 return a+b; 
};
(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/flash/)
平时,应当尽量使用函数语句定义[方法1],这种定义方法更加标准,也更简捷。
区别:方法2,需要先定义、后调用;方法1,可以先调用,后写定义。
[next]
Flash充电2:
for...in 用来枚举一个集合中所有的元素,多用于遍历(检索)如:XML,数组,Object甚至_root或MC等等,功能非常强大。本课中,我们用它来遍历整个_root。
例1:
var Car = {brand:"M6", color:"red", engine:2000};
for (var k in Car) {
 trace(k+"="+Car[k]);
}
// 输出结果:
//  brand=M6
//  color=red
//  engine=2000
例2:
//首先,在主场景中放入四个影片剪辑 
for (var k in _root) { 
trace(_root[k]); 
} 
//输出结果: 
//_level0.instance4 
//_level0.instance3 
//_level0.instance2 
//_level0.instance1 
我们注意到,即使不给_root中的MC命名,FLASH编译器也自动为MC命名的,前面的_level10指该元件的深度为10.
Flash充电3:
onEnterFrame
(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/flash/)(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; 
}; 
MC2.onEnterFrame = function() { 
MC2._rotation += MC2.speed; 
}; 
MC3.onEnterFrame = function() { 
MC3._rotation += MC3.speed; 
}; 
试想一下如果场景有100个这样MC那么写代码的过程是不是太痛苦了啊...呵呵...我们看看下面一种写法: 
function F1() { 
this._rotation += this.speed; 
} 
for (var k in _root) { 
_root[k].speed = random(10); 
_root[k].onEnterFrame = F1; 
} 
完成的功能相当于: 
MC1.speed = random(10); 
MC1.onEnterFrame = function() { 
this._rotation += this.speed; 
}; 
函数中this指:调用该函数的对象(MC1)
来源:http://www.tulaoshi.com/n/20160129/1486623.html
看过《Flash教程:旋转花朵效果的制作》的人还看了以下文章 更多>>