Flash制作旋转的花朵

所属分类: 媒体动画 / Flash教程 阅读数: 76
收藏 0 赞 0 分享
先看下最终效果:


本课中的内容涉及:函数定义, 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方法。

Flash充电1:两种定义函数的方法
(1)函数语句定义法:如

function Testadd(a, b) {
return a b;
}

(2)函数表达式定义法:如

var Testadd:Function = function (a, b) {
return a b;
};

平时,应当尽量使用函数语句定义[方法1],这种定义方法更加标准,也更简捷。区别:方法2,需要先定义、后调用;方法1,可以先调用,后写定义。
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
(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)

更多精彩内容其他人还在看

flash制作可爱的简单线条笑脸

这篇教程是向脚本之家的朋友介绍flash制作可爱的简单线条笑脸方法,教程制作出来的笑脸非常可爱,而且方法不是很难,推荐过来,大家一起来学习吧
收藏 0 赞 0 分享

flash中制作文字按照顺序显示出来的gif动画

这篇教程是向脚本之家的朋友介绍flash中制作文字按照顺序显示出来的gif动画方法,教程制作出来的动画效果非常漂亮,难度不是很大,推荐过来,大家快快来学习吧
收藏 0 赞 0 分享

flash制作一个一个字的冒出来的打字效果

这篇教程是向脚本之家的朋友介绍flash制作一个一个字的冒出来的打字效果方法,教程很简单的,很适合新手来学习,推荐到脚本之家,喜欢的朋友快快来学习吧
收藏 0 赞 0 分享

用flash制作画卷展开、合拢的gif动画效果

这篇教程是向脚本之家介绍用flash制作画卷展开、合拢的效果方法,教程制作出来的效果很不错,难度不是很大,推荐到脚本之家,喜欢的朋友快快来学习吧
收藏 0 赞 0 分享

flash怎么制作太阳月亮地球演示动态图?

flash怎么制作太阳月亮地球演示动态图?这个动图的制作过程很麻烦,因为出现的元素很多,下面我们就来看看绘制的图文教程,每一步都有,参数很清楚,想学习的朋友可以进来参考一下
收藏 0 赞 0 分享

flash制作一闪一闪的gif动画文字按钮效果

这篇教程是向脚本之家的朋友介绍flash制作一闪一闪的gif动画文字按钮效果方法,教程真的很不错,制作出来的效果很漂亮,推荐过来,一起来学习吧
收藏 0 赞 0 分享

在flash中制作由花生组成的好看花型

这篇教程是向脚本之家的朋友介绍在flash中制作由花生组成的好看花型方法,教程制作出来的图形很漂亮,难度也不是很大,推荐到脚本之家,喜欢的朋友一起来学习吧
收藏 0 赞 0 分享

flash逐帧动画制作全过程解析

这篇教程是向脚本之家的朋友分享flash逐帧动画制作全过程,教程非常基础,很适合新手来学习,推荐过来,有兴趣的朋友可以过来学习
收藏 0 赞 0 分享

flash引导层动画:引导层制作飞行的飞机

这篇教程是向脚本之家的朋友分享flash引导层动画:引导层制作飞行的飞机教程,教程真的很不错,很适合新手来学习,推荐到脚本之家,喜欢的朋友快快来学习吧
收藏 0 赞 0 分享

Flash把静态的水的图片制作成形象逼真的水波效果

这篇教程是向脚本之家的朋友分享Flash把静态的水的图片制作成形象逼真的水波效果方法,教程真的很不错,很值得大家学习,推荐到脚本之家,喜欢的朋友快快来学习吧
收藏 0 赞 0 分享
查看更多