flash as常用代码

28、详细了解GOTO语句
prevFrame()
跳至并停止在前一祯。
nextFrame()
跳至并停止在下一祯。
prevScene()
跳至并停止在前一场景的第1帧。
nextScene()
跳至并停止在下一场景的第1帧。
gotoAndPlay([scene,] frame)
跳至scene场景(省略表示当前场景)的frame帧并播放。
gotoAndStop([scene,] frame)
跳至scene场景(省略表示当前场景)的frame帧并停止。
如果gotoAndPlay命令中只有一个参数,Flash将认为它代表某个帧;
如果有两个参数,第1个参数将作为场景名,第2个参数代表该场景中的帧。

要定位包含某一对象的上一级对象,可以使用关键字_parent。
如果一个影片剪辑是包含在主时间轴中,在影片剪辑中使用_parent和_root的效果是一样的。
如果影片剪辑与主时间轴相差两个层级,即当影片剪辑包含在另一个位于主时间轴中的影片剪辑中,
这时在该影片剪辑中使用_parent指代的是它上一级的影片剪辑,
而_root是指它上两级的主时间轴。在主时间轴中不能使用_parent,因为主时间轴没有上一级。


当鼠标经过时动画播放到某处
on (rollover) {
gotoAndPlay(10);
}
当鼠标按下时动画播放到某处
on (release) {
gotoAndPlay(1);
}

如何使得flash一打开就是全屏?
fscommand("fullscreen",true)
如何不能使用右键?
fscommand ("showmenu", "false");

外部调用swf
on (release) {
loadMovieNum("service.swf", 1);
}
外部调用数据
loadVariablesNum("about.txt", 0);
https://www.360docs.net/doc/bd10054251.html,eCodepage = true;//中文
音乐加入
mySound = new Sound();
mySound.attachSound("1");
mySound.start();
关闭指定音乐
mySound.stop("1");
外部调用音乐
mySound=new Sound();
mySound.loadSound("music.mp3",true);
mySound.start(0,100)
关闭音乐
mySound.stop();
链接场景:
on (release) {
gotoAndStop("猫的历史",1);
}
清空文本框
_root.text=""
On(Release)
Set Variable:"input" = ""
Set Variable:"output" = ""
End On


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

2、function myFunction(myNum) {
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);
}
在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]+" "+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("https://www.360docs.net/doc/bd10054251.html,/cn";,_blank);}//'" target="_blank" >https://www.360docs.net/doc/bd10054251.html,/cn",_blank);}//那个7就是版本号

用奇偶判断来做一个按钮的声音开关
第一帧加入(第一帧空帧):
t=0 //给t赋初值

第二帧加入:
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)开始播放
}
}

实现倒放(可以自行联想作出许多不间断缩放效果,如动态按钮等,曾经我写过一篇这样的教程):
给放在场景中比如有40桢的MC添加如下语句

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

onClipEvent(enterFrame){
prevFrame();//不断的播放前一桢,
}

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

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



1.复制MC并随机设定子MC的相关属性:
duplicateMovieClip("mc","mc"+i,10+i);
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 (itext1 = text.substring(0,i);//从第0个字符开始抽取显示,抽取长度为i;
i++;
}
Frame5:
gotoAndPlay(4);
--------------------------------------------------------------------------------


3.冒泡法排序:
for(i;ifor(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;
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);//从上一次停止的位置开始继续播放;
}
}


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


6.MC以恒定速度旋转

onClipEvent (enterFrame) {
_rotation +=6;//设定每次的旋转角度值;
}


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

和WEB结合设计中用层来遮住FLASH


1.在flash的parameters里加入
2.

遮住场景以外的部分
Stage.scaleMode = "exactFit";

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

判断输入是否为数字的函数:


on(release){
if(Number(pass)==NaN){//判断输入是否为数字
pass="";
}

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

检查E-MAIL的函数:

function checkemail(email) {
var str = new String(email);
var arr_email = str.split("@");
if ((arr_email.length != 2) || (arr_email[1].indexOf(".")<1)) {
return (false);
} else {
return (true);
}
}
--------------------------------------------------------------------------------

延时函数:

function showTime(second, option) {
//延时函数
this.createEmptyMovieClip("t_mc", 9999);
t = getTimer();
f = false;
if ((getTimer()-t)>(second*1000)) {
option();
}
}
function go() {
//加入效果
jpg2._y = jpg2._y+77;
jpg2._alpha = jpg2._alpha-15;
}
fscommand("fullscreen", "true");
createEmptyMovieClip("jpg1", 1);
createEmptyMovieClip("jpg2", 2);
jpg1.loadMovie("1.jpg");
jpg2.loadMovie("2.jpg");
i = 0;
while (i<=100) {
showTime(0.1, go);
i = i+20;
}

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

FLASH中的保留小数的函

int(你的数*10)/10;
这样是保留一位
乘上100就是两位。以此类推

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

FLASH脚本实现关机

flas

h5:
fscommand ("exec","rundll"+chr(9)+"user.exe,exitwindows");

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



鼠标双击问题!

lsn_DbClick = new Object();
lsn_key = new Object();
lsn_DbClick.onMouseDown = function() {
clickTime = getTimer();
if (clickTime-lastClickTime<=300) {
trace("双击了鼠标");
}
lastClickTime = clickTime;
};
Mouse.addListener(lsn_DbClick);
time = getTimer()-down_time;
if (time<300) {
//双击后的代码部分
}
down_time = getTimer();


怎样在从另一个swf中获取变量

loadMovieNum("vars.swf", 1["POST"]);
_root.onEnterFrame = function() {
trace(_level1.myvab);
};
//当加载完毕后,输出就有值了...


鼠标右键及滚轮的代码

if Key.isDown(2){},(左键的代码是1)

左键:Key.isToggled(1)
右键:Key.isToggled(2)
滚轮:Key.isToggled(4)
滚轮1:Key.isToggled(4) PC机上用
滚轮2:Key.isToggled(3) MAC机上用
未知:Key.isToggled(3)
this.onEnterFrame = function() {
if (Key.isDown(2)){
trace("asdfjsdjkf");
}
}

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



实现TAB功能

获得焦点
使用Selection.setfocus()函数
举个例子:
例如你在主影片中有N个文本框,变量分别为text1,text2.....你想使影片一播放就把焦点落到第一个
文本框你就在第一FRAME 加AS如下:
Selection.setfocus("_root.text1");

我们可以举一反三


实现TAB功能 二

把这个N个文本框做组成一个数组
numarray=new array("_root.text1","_root.text2",....................."_root.textn");
首先获得鼠标焦点
x=Selection.getfocus();/* x 获得鼠标焦点的一个字符串
for(i=0;i<=n;i++)
{
if(numarray==x){
num=i; /*获得当前焦点在数组中的位置
}
然后编写TAB键功能
on (keyPress "") {
if (num==n){num=0;}
else{num++;}

Selection.setfocus(numarray[num]);

}
按钮能像window那样用Tab键来转换选择
用button.onKillFoucus


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

*两点间画直线
*画螺旋线
*画正方形、圆、椭圆
*抛物线
*正弦、余弦线

使用方法:加到帧中就可


// 画直线
// / x1, y1: 起点坐标
// x2, y2: 终点坐标
// k是层次
Movieclip.prototype.drawline = function(x1, y1, x2, y2, k) {
this.linestyle(1);
this.moveTo(x1, y1);
this.lineTo(x2, y2);
};
// 从(0,0)到(100,100)画一条线
_root.createEmptyMovieClip("mc", 10);
mc.drawline(0, 0, 100, 100);
// 画螺旋线
// w、h为宽和高
// f控制线的长短,用弧度表示
Movieclip.prototype.drawhelix = function(w, h, f) {
for (var i = 0; ithis.lineTo(x=Math.sin(i)*i*w, y=Math.cos(i)*i*h);
this.linestyle(1);
}
};
// 以(100,100)为中心画螺旋线
_root.createEmptyMovieClip("luo", 1);
with (luo) {
drawhelix(5, 5, 13);
_x += 100;
_y += 100;
}
// 多功能函数,可画

圆,椭圆,正多边形等
// n为边数
Movieclip.prototype.drawmany = function(w, h, n) {
f = 2*Math.PI;
for (var i = 0; i<=f/n*(n+1); i += f/n) {
this.lineTo(x=Math.sin(i)*w, y=Math.cos(i)*h);
this.linestyle(1);
}
};
// 画一正五边形
_root.createEmptyMovieClip("duobian", 2);
with (duobian) {
drawmany(50, 50, 5);
_x += 250;
_y += 100;
// 5为多边形的边数,6.3为2pai
}
// 画一椭圆
_root.createEmptyMovieClip("tuo", 3);
with (tuo) {
drawmany(25, 50, 100);
_x += 400;
_y += 100;
}
// 圆
_root.createEmptyMovieClip("yuan", 4);
with (yuan) {
drawmany(50, 50, 100);
_x += 400;
_y += 300;
}
// 抛物线
Movieclip.prototype.drawparabola = function(l, r, k) {
for (var i = -l; i<=r; i += 1) {
this.lineTo(x=i, y=k*i*i);
this.linestyle(1);
}
};
// 调用
_root.createEmptyMovieClip("parabola", 100);
with (parabola) {
drawparabola(50, 50, 0.05);
_x += 200;
_y += 200;
// 顶点坐标
}
// 正弦线,余弦类似
Movieclip.prototype.drawsin = function(n, k) {
for (var i = 0; i<=90*n; i += 1) {
this.lineTo(x=i, y=k*Math.sin(i*Math.PI/180));
this.linestyle(1);
}
};
_root.createEmptyMovieClip("sin", 101);
with (sin) {
drawsin(4, 50);
_x += 200;
_y += 200;
// 顶点坐标
}
Movieclip.prototype.drawwave = function(w, h) {
for (var i = 0; i<=6.3; i += 0.01) {
this.lineTo(x=w/Math.cos(i), y=h*Math.sin(i)/Math.cos(i));
this.linestyle(1);
}
};
_root.createEmptyMovieClip("wave", 105);
with (wave) {
drawwave(100, 100);
_x += 200;
_y += 200;
// 顶点坐标
}

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

一个动态文本设置alpha函数。

function setAlpha(obj,alpha){
var rgb="0x"+(255*(100-alpha)/100).toString(16);
rgb=rgb<<16|rgb<<8|rgb;
obj.backgroundColor|=rgb;
obj.borderColor|=rgb;
obj.textColor|=rgb; }

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

一个遍历level0中所有MC的instance name的函数。(可以修改一下用在其他范畴)



function readAllMC(){
this.MCitem ;
for(what in _level0){
if(typeof(_level0[what])=="movieclip"){
this.MCitem[what] = _level0[what];
}
}
}


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



设置MovieClip颜色:

MovieClip.prototype.setColor = function(c_color)
{
var mycolor = new Color(this);
mycolor.setRGB(c_color);
};
//调用:
yourMovieClip.setColor(0xff0000);



怎样设as,拒绝影片被人用loadMovie导入

以下as一定要设在最上层桢动作第一行有效
_root._name = "nn";
this.onEnterFrame = function() {
if (this._name != "nn" || _root.getDepth() != -16384) {
this.unloadMovie();
}
};

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


一、Flash与Asp之间的交互

Flash与Asp的通讯是用Http协议,其请求格式为http://ip地址?参数1=值1&参数2=值2

即是在目的地址后面加上问号

,再跟上参数字符串,参数之间用“&”号格开。如:
https://www.360docs.net/doc/bd10054251.html,/test.asp?userid=guest&pwd=123

在上面的请求中,请求的目的文件为:https://www.360docs.net/doc/bd10054251.html,/test.asp,第一个参数名为userid,值为guest,第二个参数名为pwd,值为123。

Flash与Asp之间的交互无非就是构造上面的请求字符串。

1、在Flash中,先构造好请求的字符串,然后利用函数LoadVariables(),就可以向服务器端发送请求和参数。我们来详细看看LoadVariables()这个函数。

函数的标准格式为loadVariables ("url" ,level/"target" [, variables])

在函数的各个参数中,url就是上面说的请求字符串。level/“target”是返回值的“层次”或者“目标”,这两个当中只能指定一个。 variables是请求的方式,其值可以是“Get”或者是“Post”,一般Get用于参数值比较短的传送,Post用于参数值比较长的传送,这个参数是可选的。比如loadVariables ("https://www.360docs.net/doc/bd10054251.html,/guest.asp?u ... p;pwd=123" ,0, “GET”)就是一个完整的请求。

2、在Asp中,先要取得从Flash端传送过来的参数,这跟操作普通的HTML表单是一样的。都是利用Request对象,其语句为:

username = Request(“userid”)
password = Request(“pwd”)

userid和pwd就是从Flash端发送过来的参数名,如果是上一步中的请求字符串,username的值为guest,pwd的值为123。
3、在服务器端处理完请求,获得所需要的值后,Asp向Flash端发送结果,跟从Asp中操作Html语言一样,都是用Response对象,其语句为:

Response.Write(“login=true&des=success”)

其返回值1的名为login,值为true,返回值2的名为des,值为success。

4、在Flash端取得从服务器端返回的值,与操作Flash中普通的变量没什么不同。如:
_root.gotoAndPlay(eval(login))表示的是跳转到login的值的那一帧。但要注意的是在发送请求一段时间之后,才能用返回值,不然取得的是尚未返回的值,错误就在所难免了,而且这一类的错误很难发现,用的时候要多加小心。

二、Asp与数据库之间的交互

在Asp与数据库的交互一般是用ADO控件。其读取数据库的语句为:

‘定义一个Connection对象
set conn=Server.CreateObject("ADODB.Connection")
‘用Connection对象打开数据库,这里打开的是sql server,数据库的地址为192.168.1.32
‘数据库的用户名为zengyu,密码为123
conn.open application("Driver={SQL Server};SERVER=192.168.1.32;DATABASE=test;UID=zengyu;PASSWORD=123")
‘创建一个Recordset对象
set rstemp=Server.CreateObject("ADODB.Recordset")
‘构造一个sql语句
sqltemp1="select * from UserInfo where userid='"&strname&"' and password='"&strpassword&"'"
‘查询数据库
rstemp.open sqltemp1,conn, 1, 1
if not(rstemp.bof and rstemp.eof) then
Response.Write (“login=true

”)
end if

这里实现的只是简单地查询数据库,要想了解Asp操作数据库更详细的东西,可以找Asp与数据库方面的资料深入学习一下。

三、例子――登陆的实现

下面我们来制作一个简单的实例,在Flash端输入用户名和密码,通过Asp查询数据库,如果用户名和密码正确,就跳转到登陆成功界面,否则就跳转到登陆失败界面。

1、新建一个Flash,在场景中制作两个文本框和一个Button,如图2所示。其中用户名对应的文本框属性如图3所示,密码对应的文本框属性如图4所示。注意其中的文本类型和变量名。
2、创建另外两个关键帧,分别命名为“true”和“false”,并分别显示“登陆成功”和“登陆失败”字样。

3、在Button的ActionScript中增加下面的语句,注意更改其中的ip地址。

on (release) {
loadVariables("http://192.168.1.32/guest.asp?userid=" add eval(_https://www.360docs.net/doc/bd10054251.html, ... mp;pwd=" add eval(_root.pwd),this, "GET");
now = new Date();
begintime = now.getSeconds();
while(true) {
endt = new Date();
endtime = endt.getSeconds();
if (endt - now > 2)
{
_root.gotoAndPlay(eval(login));
}
}
}

4、在Sql Server数据库(数据库的类型不重要,改一改连接串就可以的)中,建立一张名为“userinfo”的表,其中有“Userid”和“Password”两个字段。

5、建立一个guest.asp文件,文件内容为

<%
username = Request(“userid”)
password = Request(“pwd”)
set conn=Server.CreateObject("ADODB.Connection")
conn.open application("Driver={SQL Server};SERVER=192.168.1.32;DATABASE=test;UID=zengyu;PASSWORD=123")
set rstemp=Server.CreateObject("ADODB.Recordset")
sqltemp1="select * from UserInfo where userid='"&username&"' and password='"&strpassword&"'"
rstemp.open sqltemp1,conn, 1, 1
if not(rstemp.bof and rstemp.eof) then
Response.Write (“login=true”)
Else
Response.Write (“login=false”)
end if
%>

6、将Flash文件和Asp文件部署到IIS服务器中,然后打开Flash文件,输入登陆信息就可以看到实例的效果了。


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


FLASH调用外部文件详解

Flash加载外部文件
Flash可以通过帧、按扭、影片剪辑来调用外部文件。调用的外部文件包括:外部文本文件、外部程序文件、外部*.swf文件、外部图片文件、外部音乐文件、外部脚本文件。
一.调用外部文本文件:(文本文件开头要以flash中的动态文本框的变量名开头,如
msg=".........."这样的形式,要和编辑的Flash文件放在同一目录下)
1.用工具箱中的文本工具,选择动态文本,给动态文本一个变量名,如:msg,在编辑区拖出一个文本框
2.制作两个按扭(一个调用,一个清除)拖放到场景中。
3.调用按扭上添加AS:
on(release){//松开鼠标后执行下面的代码;

loadVariables("msg.txt",msg);//调用和你编辑的Flash处于同一目录下的msg.txt文本文件到动态文本msg中;
https://www.360docs.net/doc/bd10054251.html,eCodepage=true;//使外部文件的中文字符能够正确显示;
}
4.清除按扭上的AS:
on(release){//松开鼠标后清楚动态文本框中的内容;
msg="";
}
5.Ctrl+Enter测试.

当然代码也可以写在帧上:(调用按扭的实例名是bt1,清除按扭的实例名是bt2)
在第一帧上加如下代码:
stop();
_root.bt1.onRelease=function(){
loadVariables("msg.txt",msg);
https://www.360docs.net/doc/bd10054251.html,eCodepage=true;
}
_root.bt2.onRelease=function(){
_root.msg="";
}

Ctrl+Enter测试.

调用的外部文本文件能够滚动:
1.用工具箱中的文本工具,选择动态文本,给动态文本一个变量名,如:msg,在编辑区拖出一个文本框
2.新建一层,制作两个按扭(一个调用,一个清除)拖放到此层中
3.新建一层,在动态文本框的右侧用矩形工具画一个竖条,高度和动态文本一样;再制作一个向上的方向"箭头"按F8转为按扭元件;复制一个"箭头"按扭,垂直镜象,使这两个按扭和竖条的两端对齐.
4.调用按扭上的AS:
on(release){//松开鼠标后执行下面的代码;
loadVariables("msg1.txt",msg);//调用msg1.txt文本文件到动态文本框msg中;
https://www.360docs.net/doc/bd10054251.html,eCodepage=true;//使外部文件的中文字符能够正确显示;
}
清除按扭上的AS:
on(release){
_root.msg="";//清除动态文本框中的内容;
}
向上的按扭上的AS:
on(press){//在按扭的感应区上每按一次鼠标执行下面的代码;
_root.msg.scroll=_root.msg.scroll-1;//文本向下滚动一行;
}
向下的按扭上的AS:
on(press){//在按扭的感应区上每按一次鼠标执行下面的代码;
_root.msg.scroll=_root.msg.scroll+1;//文本向上滚动一行;
}
Ctrl+Enter测试.

当然代码也可以写在帧上:(调用按扭的实例名是bt1,清除按扭的实例名是bt2,向上按扭的实例名是:up,向下按扭上的实例名是down)
在第一帧上加如下代码:
_root.bt1.onRelease=function(){//松开鼠标后执行下面的代码;
loadVariables("msg1.txt",msg);//调用msg1.txt文本文件到动态文本框msg中;
https://www.360docs.net/doc/bd10054251.html,eCodepage=true;//使外部文件的中文字符能够正确显示;
}
_root.bt2.onRelease=function(){//松开鼠标后执行
_root.msg="";//清除动态文本框中的内容;
}
_root.up.onPress=function(){//在向上按扭上每按一次鼠标执行下面的代码;
_root.msg.scroll=_root.msg.scroll-1;//文本向下滚动一行;
}
_root.down.onPress=function(){//在向下按扭上每按一次鼠标执行下面的代码;
_root.msg.scroll=_root.msg.scroll+1;//文本向上滚动一行;
}
Ctrl+Enter测试.

二.调用外部*.swf文件(加载到影片剪辑中):
外部*.swf文件要和编辑的Flash文件放在同一目录下
1.新建立一个空的影片剪辑mymc,把它放在场景中,实例名是:mymc.
2.新建一层,制作两个按扭(一

个调用,一个清除)拖放到此层中
3.调用按扭上的AS:
on(release){//鼠标离开按扭后执行下面的代码;
loadMovie("flash8.swf","mymc");//加载外部的"flash8.swf"文件到"mymc"空影片剪辑中;
mymc._x=70;//加载影片的X轴坐标;
mymc._y=20;//加载影片的Y轴坐标;
mymc._xscale=70;//加载影片的宽度;
mymc._yscale=70;//加载影片的高度;
}
清除按扭上的AS:
on(release){//鼠标离开按扭后执行下面的代码
unloadMovie(mymc);//删除用loadMovie加载的*.swf文件;
}
Ctrl+Enter测试

三.调用外部*.swf文件(加载到时间轴上):
外部*.swf文件要和编辑的Flash文件放在同一目录下
1.制作两个按扭(一个调用,一个清除)拖放到场景中
2.调用按扭上的AS:
on(release){//鼠标离开按扭后执行下面的代码
loadMovie("flash8.swf",1);//加载外部的"flash8.swf"文件到场景中,层深为1;
}
清除按扭上的AS:
on(release){//鼠标离开按扭后执行下面的代码
unloadMovie(1);//删除层深为1的用loadMovie所加载的"flash8.swf"文件
}
Ctrl+Enter测试。
当然二和三的代码都可以写在帧上。

四.调用外部图片(加载到影片剪辑中)
外部图片必须和正在编辑的Flash文件放在同一目录下
1.制作两个按扭(一个调用,一个清除)拖放到场景中
2.制作一个空的影片剪辑,拖到场景中,实例名是:mymc;
3.时间轴上第一帧上的AS:
i=0;//定义一个变量i,并且赋初值为0;
调用按扭上的AS:
on(release){//鼠标离开按扭后执行下面的代码;
i++;
if(i>9){//因为外面这有9张图,当变量大于9的时候,让变量为1,这样能够使加载的图片是连续的,即,每点一次按扭,就换一张图,等到换到第9张图,再点按扭,则循环到第一张图(j1.jpg到j9.jpg,因为没有j0.jpg,如果i=0,则会提示没有找到j0.jpg);
i=1;
}
loadMovie(("j"+i)+".jgp",mymc);//从j1.jpg开始加载图片到影片剪辑mymc中;
mymc._x=110;//以下设置加载图片的属性
mymc._y=35;
mymc._xscale=130;
mymc._yscale=130;
}
清除按扭上的AS:
on(release){
unloadMovie(mymc);//删除掉用loadMovie加载到影片剪辑的图片;
}
Ctrl+Enter测试。
当然AS可以写在帧上。

五.调用外部声音文件(加载到场景中)
外部声音文件必须和正在编辑的Flash文件放在同一目录下
1.制作两个按扭(一个调用,一个清除)拖放到场景中
2.调用按扭上的AS:
on(release){//鼠标离开按扭后执行下面的代码;
mySound=new Sound();//建立一个新的声音对象mySound;
mySound.loadSound("zaihuni.mp3",true);//加载外部的*.mp3声音文件到mySound对象中,并且按流的方式播放(参数为false时,是以装载完后播放);
}
清除按扭上的AS:
on(release){
mySound.stop();//当按下清除按扭后,停止声音的播放
}
Ctrl+Enter测试。


---------

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


加载外部图片


如果你的动画中有很多的图片.如果都放到一个SWF文件.可能打开或是下载会很慢.这样就影响了观看效果及速度,那么你可以利用载入外部图片的方法,只要把图片按名称放到你网上的一个目录里(和你的SWF文件同一个目录),那么就可以解决这个问题

前十祯你做一个载入LOADING.从第十一祯开始

新建一个图层.起名为AS层

在AS图层的第十一祯加入一个关键祯,然后打开动作面板,加入以下AS

i = 0;//初始化变量
loadMovie ("p040.jpg", "pic");//在播放原始 SWF 文件的同时将p040.jpg 文件
//加载到 Flash Player 中的叫PIC的这个影片剪辑中。

上面的语句是实现了加载一张.我们要它加载多张.所以要用到IF语句.在AS层的第六十祯处加入一个关键祯,打开动作面板,加入AS语句:

i++;//变量i递增
if (i >= 21) {//当变量i递增到>=21时.这里的21是因为我准备了二十一张要加载的图.如果你加载十张.那就把这里的21改为10就可以了
i = 0;//则变量为0,即重新加载
}
loadMovie (("p04" + i) + ".jpg", "pic");//如果不是.则继续加载.这里的p04+i就等p04i.也就是说i是几.这里就是p04*,比如i为12,则p04+i就等于p0412
gotoAndPlay (12);//跳转到第十二祯

所以.在这里给图片起文件名时.就要按照这个原则来起的.准备好的图片要和你的主调用SWF文件入在同一个目录下,或者你也可以加载时用绝对路径,那就要改成"https://www.360docs.net/doc/bd10054251.html,/p04"' target="_blank&qu ... https://www.360docs.net/doc/bd10054251.html,/p04";+i+".jpg"

图片的大小最好是事先调整好的.在你做好的PIC这个加载用的MC里.它的位置是放在XY坐标为0的位置,加载进来图是以这个MC左上角为准的,也就是说加载进来图的左上角与加载用的MC的左上角是重合的
--------------
loadMovie("图片名",newname);
以上语法以下用法
on(release){
loadMovie("pic.jpg", "mc");
mc._x=50;
mc._y=50
mc._xscale=40;
mc._yscale=40
}

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

加载外部文本文件的3种方法

不管那样方法,文本文件要和主文件在同一目录下,再就是在这儿的文本文件名为 b.txt

*第一种方法txt=

1、创建一个文本框,给此文本框一个变量名txt;
2、文本格式为:动态;
3、选:多行输入
4、在第一帧上增加脚本语言。(按F9)
loadVariablesNum("b.txt",0);//b.txt是文件名,0是场景中的根目录
然后打开poems.txt文件,在记事本里输入:txt=
注意:在加载之前对文本文件进行转换,另存为Unicode编码格式。

*第二种方法 在主文件帧上输入防乱码的AS
按钮实现引用外部文本文件的效果:
第一步:主场第一帧AS:
https://www.360docs.net/doc/bd10054251.html,eCodePage = true;//防止乱码

第二步:在按钮上

写AS:
on (release) {
_root.loadVariables("b.txt");//b.txt文本名
}

**第三种方法 使用构造器,将文本拆分为若干字符串来显示.从根本上防止乱码.
,也就是说直接在 txt 里面写东西就行了。代码如下:

lala = new LoadVars();//构造函数;创建 LoadVars 对象。然后可使用该 LoadVars 对象的方法来发送和加载数据
lala.onData = function(rw) {//当lala被实例化并显示在时间轴上时将触发
a_txt.text = replacePunc(rw);//
};

function replacePunc(str) {//执行将文本拆分为多个字符串
var tempArray = str.split("\r\n");//拆分为多个子字符串
var tempstr = new String();
for (var i = 0; itempstr += tempArray+newline;
}
return tempstr;
}

https://www.360docs.net/doc/bd10054251.html,eCodepage = true;//通知 Flash Player使用 传统代码页来解释外部文本
lala.load("b.txt");

本人觉得第三种办法好

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

相关主题
相关文档
最新文档