手机
当前位置:查字典教程网 >网页设计 >Flash教程 >Flash AS 入门教程 三个实例讲解
Flash AS 入门教程 三个实例讲解
摘要:一、画正玄图象,由外部输入控制起点横坐标、震幅和跨度。源文件下载点击查看动画效果c){//超过360度时(由360/c*i>360计算得到i...

一、画正玄图象,由外部输入控制起点横坐标、震幅和跨度。

Flash AS 入门教程 三个实例讲解1

源文件下载

Flash AS 入门教程 三个实例讲解2

点击查看动画效果<

思路:我们可以在作业源程序中发现:

复制代码代码如下:

.......

moveTo(100, 200); //正玄线的起点坐标为(100,200)可以把横坐标用一个变量(a)来表示

........

y = 200-100*Math.sin(i*Math.PI/180);//其中100决定震幅大小,我们可以用变量(b)来表示;横坐标1个象数,对应表示1度的角度,在一个周期360度的条件下,如果横坐标1个象数对应几度,那么跨度显然会减小,就是说sin(i*Math.PI/180)中i的系数决定跨度的大小,经过反复测试这个系数为360/c比较合理。因此,原来程序中的这两条可以改为:

复制代码代码如下:

moveTo(a, 200);

y = 200-b*Math.sin(360/c*i*Math.PI/180)

为了能够重复使用这个画图程序,显然我们应该用自定义函数,上面的三个变量就可以做为参数。

打开源程序3.7.1.fla文件,这里只记与作业不同的地方:

第1帧上:

复制代码代码如下:

a = b=c=""; //对输入文本变量赋初值

function huaxian(a, b, c) { //自定义函数,函数名为huaxian,参数为三个文本变量

............

y = 200-b*Math.sin(360/c*i*Math.PI/180);//b决定震幅,c决定跨度

.....

if (i>c) { //超过360度时(由360/c*i>360计算得到i>c)

delete onEnterFrame; //删除事件

}

};

}

huaxian(100, 100, 360); //先画一个正玄图象

按扭上的脚本:

复制代码代码如下:

on (release) {

if (c<36) {

web = "请输入36以上的整数"; //跨度太小,图象误差太大

} else {

web=""

_root.huaxian(Number(a), Number(b), Number(c));//调自定义函数,并且把其中参数转化为数值

}

}

二、把文字和下面的mc的位置都分别作任意的排列

Flash AS 入门教程 三个实例讲解2

点击查看动画效果<

思路:考虑mc位置的乱排,这些mc的纵坐标都相同,因此,我们主要考虑乱排横坐标。我们把这些mc的6个横坐标放入一个数组,用上一节讲的办法,很容易实现乱排的效果。

打开3.7.1.fla文件

在第1帧上的脚本为:

复制代码代码如下:

stop();

i = 0;

w_arry = [30, 110, 190, 270, 350, 430];//把文本的横坐标作为一个数组

for (t=1; t<7; t++) {

m = Math.floor(Math.random()*w_arry.length);//从数组中任意选出一个编号

this["wz"+t]._x = w_arry[m];//把数组中这个编号的元数作为这个文本的横坐标

w_arry.splice(m, 1);//从这个数组中删去这个元数;

this["wz"+t]._y = 30;//设置这个文本的纵坐标

}

tx_arry = [76, 156, 236, 316, 396, 476];//与上面类同;

for (s=1; s<7; s++) {

m = Math.floor(Math.random()*tx_arry.length);

this["tx"+s+"_mc"]._x = tx_arry[m];

tx_arry.splice(m, 1);

this["tx"+i+"_mc"]._y = 320;

}

function stlx(md, mc) {//设置自定义函数

md.x = md._x;//影片剪辑的坐标用这个影片剪辑下的变量x,y来保存

md.y = md._y;

md.onPress = function() {//鼠标在md上按下时;

startDrag(this, true);//拖动这个md;

};

md.onRelease = function() {//鼠标在md上松开时;

stopDrag();//停止拖动;

if (md.hitTest(mc)) {//如果md和mc交叉或者重叠;

if (md.k != 1) {//又如果md下的变量k不等于1的话;

i++; //变量i加1;

md.k = 1; //使md下的变量k=1;

}

if (i == 6) { //如果i等于6;

nextFrame();//到下一帧停下;

}

} else { //如果md和nc不重叠或者相交;

md._x = md.x; //把md原来的坐标赋给md(回到原来的位置)

md._y = md.y;

}

};

}

for (j=1; j<7; j++) { //相当于在6个mc上调自定义函数

stlx(this["tx"+j+"_mc"], this["wz"+j]);

}

/* 例如,j=1,那么就是:

stlx(this.tx1_mc,this.wz1)

*/

三、这四个元件开始顺序播放时,一个结束到另外一个开始的时间 间隔就能等于输入 的时间 ?随机播放的时候 一个结束到另一个播放的时间 的间隔也等于输入 的时间

Flash AS 入门教程 三个实例讲解2

点击查看动画效果<

思路:

方法1 可以在4个元件的最后一帧上加脚本,使另外的元件隔一定时间开始播放;

方法2 可以使用(帧频)事件处理函数来监测,如果影片的当前帧等于总帧数,那么这个影片播放完毕,让其它影片开始播放。用方法2比较简单。

打开 3.7.3fla文件:

在第1帧上的脚本为:

复制代码代码如下:

yp_array = [aa, bb, cc, dd];//把4个mc作为数组yp_array的元素;

time = "";

i = 0;

function du() {//自定义函数du

yp_array[i].play();//播放数组yp_array中第i个mc

yp_array[i].onEnterFrame = function() {//对这个mc使用事件处理函数

if (this._currentframe == this._totalframes) {//如果这个mc的当前帧等于总帧数;

sj = setInterval(du, time*1000);//间隔time*1000毫秒调这个自定义函数du;

delete this.onEnterFrame;//删除事件;

}

};

clearInterval(sj);//清除时间间隔函数

i++;

}

function duing() {

k = Math.floor(Math.random()*yp_array.length);

//根据数组yp_array的长度,选择一个随机数k;

yp_array[k].play();//数组yp_array中的第k个mc播放

yp_array[k].onEnterFrame = function() {//对这个mc使用事件处理函数

if (this._currentframe == this._totalframes) {//如果这个mc的当前帧等于总帧数;

sjing = setInterval(duing, time*1000);

//间隔time*1000毫秒调这个自定义函数duing;

delete this.onEnterFrame;//删除事件;

}

};

yp_array.splice(k, 1);//从数组yp_array中删除第k个元数

clearInterval(sjing);//清除时间间隔函数

}

在按扭“顺序播放”上的脚本:

复制代码代码如下:

on (release) {

yp_array = [aa, bb, cc, dd];//重新给数组yp_array赋值

clearInterval(sjing);

//删除随机播放时的时间间隔函数;这两句是防止先按“随机播放”后出错。

i = 0;//重新给变量赋值。

if (time != "") {

du();//调函数du

}

}

在按扭“随机播放”上的脚本:

复制代码代码如下:

on (release) { //与“顺序播放”按扭上的脚本类似

yp_array = [aa, bb, cc, dd];

clearInterval(sj);

i = 0;

if (time != "") {

duing();

}

}

Flash AS 入门教程 三个实例讲解3

查看全套"Flash AS 高级教程"

【Flash AS 入门教程 三个实例讲解】相关文章:

Flash AS 入门 认识“动作”面板

Flash AS 教程:帧循环

Flash AS 入门教程 乱数排列(随机数)方法

Flash入门教程,学习遮照在Flash中的运用

Flash cs3教程:位图动画的表现

Flash教程实例:如何制作别样的绿

Flash AS3.0 制作老鹰飞动实例

Flash AS 实例进阶 导航条实现方法

Flash AS 入门 “影片剪辑”属性调整及路径解析

Flash AS教程:图片环绕旋转动画

精品推荐
分类导航