Flash小技巧

  • 格式:doc
  • 大小:95.50 KB
  • 文档页数:57

.....................最新资料整理推荐.....................

1 FLASH小技巧,

动态修改影片的帧频

在AS3中,你可以使用Stage类动态的修改影片的帧频。Stage类(flash.display.Stage)的stage对象是所有的sprite和MovieClip以及其他在安全沙箱里的所有元件的舞台。stage对象的帧频可以是0.01到1000之间的任何一个数。要修改帧频,使用下面的代码:

// 将帧频修改到12帧每秒(FPS)

stage.frameRate = 12;

FLASH无手指按钮的制作

只需要在第一帧加上:

eHandCursor=0

buttonname是你按钮的实例名(不是库里面的名字,属性面板里面的实例名)

几个需要掌握的AS

1、var a = Math.abs(-7); // 求绝对值(这里是求-7的)

2、function myFunction(myNum) { .....................最新资料整理推荐.....................

2 var newNum = myNum+5;

return newNum;

}

trace(myFunction(8));

//定义 调用并输出函数值

3、多数情况下,需要用到鼠标光标在主场景中的位置,所以可以使用_root._xmouse和_root._ymouse表示。

onClipEvent (enterFrame) {

_x = _root._xmouse;

_y = _root._ymouse;

}//让影片剪辑和鼠标保持相同坐标

4、将矩形影片剪辑作为遮罩图形

在矩形影片剪辑的动作面板中添加如下ActionScript:

onClipEvent (load) {

xs = _width;

ys = _height;

}

onClipEvent (enterFrame) {

_xscale = 100*(_root._xmouse-_x)/(xs/2);

_yscale = 100*(_root._ymouse-_y)/(ys/2); .....................最新资料整理推荐.....................

3 }

在load事件中,用变量xs和ys取得影片剪辑初始状态下的宽度和高度值。在enterFrame事件中,计算鼠标位置与矩形影片剪辑中心

的距离,算出它与矩形宽度和高度值的比值,然后作为_xscale和_yscale的值。该动画实现移动鼠标位置以改变遮罩效果

5、Array对象(动作面板的“对象”/“核心”目录)即数组,它用来记录成组的相关或相似变量。创建一个空的数组:

myArray = new Array();

如下所示的ActionScript创建一个确定值的数组并在输出窗口中显示每个元素的值:

weekDay = new Array("SUN", "MON", "TUE", "WED", "TUR", "FRI",

"SAT");

for (var i = 0; i<7; i++) {

trace(weekDay);

}

数组中还可以嵌套数组,即构成多维数组,如下所示:

polyArray = new Array();

for (var i = 0; i<3; i++) {

polyArray = new Array(i*3+1, i*3+2, i*3+3, i*3+4);

trace(polyArray[0]+" "+polyArray[1]+" "+polyArray[2]+" .....................最新资料整理推荐.....................

4 "+polyArray[3]);

}

输出窗口中将显示:

1 2 3 4

4 5 6 7

7 8 9 10

--------------------------------------------------------------------------------

判断本机Flash播放器版本并进行下载

ss=System.capabilities.version;

if(substring(ss,5,1)<>"7"){getURL("/cn";,_blank);}//'"

target="_blank" >/cn",_blank);}//那个7就是版本号

用奇偶判断来做一个按钮的声音开关

第一帧加入(第一帧空帧):

t=0 //给t赋初值 .....................最新资料整理推荐.....................

5

第二帧加入:

stop(); //停止在第二帧

ms=new Sound //新建一个声音对象ms

ms.attachSound("sound") //空声音对象从库中调用连接名为sound的声音

ms.start() //ms开始播放

ms.onSoundComplete=function () { //当ms这个声音播放完后执行以下AS

ms.start //重复播放ms

}

第二帧上面的控制按钮加入

on (release) { //当鼠标松开的时候执行下面AS

t=t+1 //t的值等于本身的值加1

if (t%2==1) { //如果T取摸2等于1

ms.stop() //则ms停止播放

b=ms.position/1000 //b的值等于现在ms声音停止的位置

} else { //否则

ms.start(b) //ms从刚刚停止的地方(b)开始播放

}

} .....................最新资料整理推荐.....................

6

实现倒放(可以自行联想作出许多不间断缩放效果,如动态按钮等,曾经我写过一篇这样的教程):

给放在场景中比如有40桢的MC添加如下语句

onClipEvnt(load){

gotoAndStop(40);//影片载入时就跳转到40桢并停止

}

onClipEvent(enterFrame){

prevFrame();//不断的播放前一桢,

}

--------------------------------------------------------------------------------

一些简单的AS和一些程序思路,掌握最好:

1.复制MC并随机设定子MC的相关属性:

duplicateMovieClip("mc","mc"+i,10+i); .....................最新资料整理推荐.....................

7 setProperty("mc"+i,_x,random(400) );//x坐标

setProperty("mc"+i,_y,random(300) );//y坐标

setProperty("mc"+i,_alpha,random(100) );//透明度属性

i++;

if(i>200){//设定复制的个数;

i=1;

}

--------------------------------------------------------------------------------

2.文字的逐个出现(打字效果)

Frame1: text="引号内是要出现的字";

ll = text.length;// 表示text文本的字符数;

i = 1;//用于控制输出的变量;

Frame4:

if (i

text1 = text.substring(0,i);//从第0个字符开始抽取显示,抽取长度为i;

i++;

} .....................最新资料整理推荐.....................

8 Frame5:

gotoAndPlay(4);

--------------------------------------------------------------------------------

3.冒泡法排序:

for(i;i

for(j=n;j<=i+1;j--){//内层循环;

if(a[j]

temp=a[j];

a[j]=a[j-1];

a[j-1]=temp;//交换位置;

}

--------------------------------------------------------------------------------

4.插入法排序(算法复杂性比冒泡法要小):

for(i=2;i<=n;i++){

j=i; .....................最新资料整理推荐.....................

9 if(a[j]

temp=a[j];

a[j]=a[j-1];

a[j-1]=temp;

j--; }

}

--------------------------------------------------------------------------------

5.一个按钮控制声音的播放与停止:

on(release)

{a=a+1;

if(a%2==1){//奇偶判断;

mysound.stop();

_root.b=int(ji.position/1000);//记录下停止时播放的位置;

}

else{ mysound.start(_root.b);//从上一次停止的位置开始继续播放;

}

}