Flash教程:逐帧动画打造花吃蝴蝶效果

来源:百度文库 编辑:神马文学网 时间:2024/04/28 22:20:25

Flash教程:逐帧动画打造花吃蝴蝶效果

flash入门教程

Flash教程:逐帧动画打造花吃蝴蝶效果

分析:大家看效果是不是还挺不错的,这样的动画就叫逐帧动画。没有经过FLASH的计算,每一帧都是由我们自己绘制的。好了,让我们一起来学习是怎么做的吧。

1、设置参数,将舞台大小设置为300*300,背景为白色,帧频为4。

2、建立新图层,取名为背景。以后的背景元素我们都将放在这一层当中。

3、在第一层第一帧上绘制如下的图案:蓝色的是背景,大家可以在动画中看出,咖啡色的是用来放花盆的桌子。因为这一部分在整个动画里对哦是静止不动的,所以我们将它们放置在背景层中。

4、动画的长度我希望保持30帧,在第一层的第30帧处,先用鼠标点击,选中后按下F5,这是插入帧的快捷键。意思是这30帧都会仿制第一帧的样子出现。

5、新建一层,名叫边框。

6、在边框这一帧里为刚才画好的背景加上蓝色的边线,并重复3步骤,在边框层的30帧处按下F5,让帧一直保持到30。

7、新建花盆图层。

8、在花盆图层的第一帧画出花盆的样子,并重复3步骤,在花盆层的30帧处按下F5,让帧保持在30。



9、新建图层花儿,我们将要开始绘制花开放的过程。



10、此时的第一帧为花的初始形态,那么在这一帧我们绘制出花芽,如图:



11、分别在花图层的2,3,4,5,6帧处按下F6,插入关键帧,然后分别在2,3,4,5,6帧中绘制出花的形态。

      function ImgZoom(Id)//重新设置图片大小 防止撑破表格 { var w = $(Id).width; var m = 550; if(w < m) { return; } else { var h = $(Id).height; $(Id).height = parseInt(h*m/w); $(Id).title = "点击小图看大图"; $(Id).width = m; } } window.onload = function() { var Imgs = $("content").getElementsByTagName("img"); var i=0; for(;i

Flash教程:旋转花朵效果的制作

浏览:135 | 发布于:2009.02.13 | 分类:flash入门教程

Flash教程:旋转花朵效果的制作

本课中的内容涉及:函数定义, 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,数组,O**ect甚至_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) {

Flash教程:关于Loaling的详细解释

浏览:92 | 发布于:2009.02.13 | 分类:flash入门教程

Flash教程:关于Loaling的详细解释

首先说下为什么FLASH中要用Loading.所谓Loading,主要是指在网上观看Flash时,有时由于文件太大,或是网速限制, 需要装载一段时间才能播放,但由于这个Loading所需的时间对于观看者来说是未知的,所以在Flash电影装载过程中,如果没有任何提示,多数用户都不会有足够的耐心在面对一片空白的屏幕等上一会,于是我们需要做一个简短的Loading来告诉观看者下载的进度, 让观看者知道所要等待的时间.充分体现了对观看者的一种尊重.

下面来讲下Loading的具体的语法:


//影片加载时,将影片总字节数赋给变量total


onClipEvent (load) {total = _root.getBytesTotal();}


onClipEvent (enterFrame) {


//进入影片时,将影片已下载的字节数赋给变量loaded


loaded = _root.getBytesLoaded();


//将已下载的除以总字节数,再乘以100,于是得到目前已下载字节的百分比


percent = int(loaded/total*100);


//让text动态文本来显示下载的百分比.


text = percent+"%";//让影片停在当前下载的位置.


gotoAndStop(percent);


//判断已下载的字节数是否等于总字节数,如果为真,则跳到并播放第2帧.


if (loaded == total) {_root.gotoAndPlay(2);}



}以上就是主要的代码了,有一点要说明 ,有人可能说看不到数字百分比的显示.请检查舞台上是否添加了动态文本, 并定义它的实例名称与AS中的变量text的名称一致.

对于初学者来说,不知道在什么地方写代码.这是很普遍的一个问题,刚入门对于代码还没有完全理解,也会存在这样的问题.

那么对于Loading该在何处写代码呢?

接着往下看,Loading的代码要写在一个影片剪辑上.如果就一个文本来显示下载进度可能太单调. 做个像媒体播放器的进度条来显示下载进度更让人一目了然!关于Loading影片剪辑的制作我就不提了,因各个人喜好不同.

解决Loading 在70%左右才出现的问题

这几天在完善FLASH OS,遇到一个让人很是郁闷的问题:在模拟下载时,loading 要在75% 时才出现loading画面.

这个问题的原因是:FLASH中的MC或声音设置成了在第一帧导出.这样第一帧就很大了,下载时当然要多花时间了!

解决办法很简单:在库面板中将MC或声音的链接设置中的"在第一帧导出"去掉就OK了!大功告成!