FLASH脚本新手入门
这是我从收集来的几篇文章,我想对FLASH脚本新手入门有帮助
这是我从收集来的几篇文章,我想对FLASH脚本新手入门有帮助
转载(1)
flashAS基础:
小弟在学AS的过程中特地搜寻整理出来的一些心得和体会,绝对精华!!!
1.你先学会加动作的三种方式:在帧上加,在mc上加,在按钮上加.用play stop goto这三
个命令反 复练习.不要用太多的命令给自己吃迷晕药.用实例练,不要空练.
2.会了我说的1后,要学给按钮加动作的8种方法和给mc加的9种方法.
按钮
(1)在按钮上面,选中按钮,加入代码
on (release) {
getURL("http://www.flash8.net", "_blank");
}
(2)上面的代码是加在按钮元件上的,没有a标志,加在元件上面的代码都是没有a标志,并不是十分有利于他人 阅读。现在很多人推荐把所有代码写在时间轴上,作为入门的朋友还是养成这样的习惯好一些。
将按钮定义一个实例的名字bt_url
bt_url.onPress = function() {
getURL("http://www.flash8.net", "_blank");
}
3,会了我说的2了,就要学个编程最基础最重要的东西----路径的描述(能看懂就能用)
1> _root.mc1.mc2. ... mcn.play()[或stop(), _x, .......]
2>_parnet
3>this
4>mc1.mc2. ...
5>_leveln.mc1.mc2. ... mcn.play()[或stop(), _x, .......]
练习这样个实例对你也许有帮助, 把一首你喜欢听的歌随意放在某个mc中,随
意地在某个mc或按钮上加动作去控制它,想让它停就停,想让它放就放.
4。遇到问题,自己想办法解决,不要老是依*别人,在自己做过之后还是不行的话可就要发问拉,当然问的方法要好多种,这里就不说拉!
5.要自强自信,不要迷信洋人的东东,活学活用重在理
6.了解代码执行的先后顺序:
图层默认的是从下向上执行
level是从下向上执行
帧是随实际播放顺序执行
代码本身从上向下一行一行地执行
7.了解两种坐标系统:
场景下的坐标,o点在左上角,y轴向下是增大 x向右是增大
组件的坐标,o点在组件中心,y轴向下是增大 x向右是增大
8.了解三种文本域
静态文体域:和排版软件的文字工具一样.
动态文本域和输入文本域:其实就把它们看是两种变量,只不过是可见的变量,
9.详细了解GOTO语句
prevFrame()
跳至并停止在前一祯。
nextFrame()
跳至并停止在下一祯。
prevScene()
跳至并停止在前一场景的第1帧。
nextScene()
跳至并停止在下一场景的第1帧。
gotoAndPlay([scene,] frame)
跳至scene场景(省略表示当前场景)的frame帧并播放。
gotoAndStop([scene,] frame)
跳至scene场景(省略表示当前场景)的frame帧并停止。
10,了解MC的各种可改写的属性
_x 中心点所在相对X坐标(象素单位)
_y 中心点所在相对Y坐标(象素单位)
_xscale 横向缩放比例,初始为100
_yscale 纵向缩放比例,初始为100
_rotation 相对旋转角度(度单位)
_width 相对显示宽度(象素单位)
_height 相对显示高度(象素单位)
_alpha 显示透明度(0~100)
_visible 是否可见
_focusrect 是否显示焦点框
_name 实例名称
11,三大纪律:1>写代码时一定要用英文(如EN CH)输入法
2>必须要有唯物主义思想,没有加载的MC是不可以更改它的属
性,更不可以写代码去控制它。这个问题较难掌握,高手有时也会
犯,道理就是先有吃的才能请客吃,啥也没有请客吃什么呢
3>操作什么一定要选什么(实际上哪个软件也要这样)。在MX中加代
码时如不选,就一定要写明名称,实际上也是一种先择。
12,八项注意:1>按钮不能盖着输入文本,动态文本和输入文本域不能盖着按钮
2>用loadMoie时LEVEL1及以上的文件尽量少用大隐型按钮
3>从一个文件中复制MC实例到别一个文件中时,尽量复制帧,而不能直接
复制实例,
4>从一个文件中复制MC实例到别一个文件中时,要先把目标文件中的符
号库中原有的符号,装进资夹里,很多网友这个问题上上过当吧?
5>.....
1.你先学会加动作的三种方式:在帧上加,在mc上加,在按钮上加.用play stop goto这三
个命令反 复练习.不要用太多的命令给自己吃迷晕药.用实例练,不要空练.
2.会了我说的1后,要学给按钮加动作的8种方法和给mc加的9种方法.
按钮
(1)在按钮上面,选中按钮,加入代码
on (release) {
getURL("http://www.flash8.net", "_blank");
}
(2)上面的代码是加在按钮元件上的,没有a标志,加在元件上面的代码都是没有a标志,并不是十分有利于他人 阅读。现在很多人推荐把所有代码写在时间轴上,作为入门的朋友还是养成这样的习惯好一些。
将按钮定义一个实例的名字bt_url
bt_url.onPress = function() {
getURL("http://www.flash8.net", "_blank");
}
3,会了我说的2了,就要学个编程最基础最重要的东西----路径的描述(能看懂就能用)
1> _root.mc1.mc2. ... mcn.play()[或stop(), _x, .......]
2>_parnet
3>this
4>mc1.mc2. ...
5>_leveln.mc1.mc2. ... mcn.play()[或stop(), _x, .......]
练习这样个实例对你也许有帮助, 把一首你喜欢听的歌随意放在某个mc中,随
意地在某个mc或按钮上加动作去控制它,想让它停就停,想让它放就放.
4。遇到问题,自己想办法解决,不要老是依*别人,在自己做过之后还是不行的话可就要发问拉,当然问的方法要好多种,这里就不说拉!
5.要自强自信,不要迷信洋人的东东,活学活用重在理
6.了解代码执行的先后顺序:
图层默认的是从下向上执行
level是从下向上执行
帧是随实际播放顺序执行
代码本身从上向下一行一行地执行
7.了解两种坐标系统:
场景下的坐标,o点在左上角,y轴向下是增大 x向右是增大
组件的坐标,o点在组件中心,y轴向下是增大 x向右是增大
8.了解三种文本域
静态文体域:和排版软件的文字工具一样.
动态文本域和输入文本域:其实就把它们看是两种变量,只不过是可见的变量,
9.详细了解GOTO语句
prevFrame()
跳至并停止在前一祯。
nextFrame()
跳至并停止在下一祯。
prevScene()
跳至并停止在前一场景的第1帧。
nextScene()
跳至并停止在下一场景的第1帧。
gotoAndPlay([scene,] frame)
跳至scene场景(省略表示当前场景)的frame帧并播放。
gotoAndStop([scene,] frame)
跳至scene场景(省略表示当前场景)的frame帧并停止。
10,了解MC的各种可改写的属性
_x 中心点所在相对X坐标(象素单位)
_y 中心点所在相对Y坐标(象素单位)
_xscale 横向缩放比例,初始为100
_yscale 纵向缩放比例,初始为100
_rotation 相对旋转角度(度单位)
_width 相对显示宽度(象素单位)
_height 相对显示高度(象素单位)
_alpha 显示透明度(0~100)
_visible 是否可见
_focusrect 是否显示焦点框
_name 实例名称
11,三大纪律:1>写代码时一定要用英文(如EN CH)输入法
2>必须要有唯物主义思想,没有加载的MC是不可以更改它的属
性,更不可以写代码去控制它。这个问题较难掌握,高手有时也会
犯,道理就是先有吃的才能请客吃,啥也没有请客吃什么呢
3>操作什么一定要选什么(实际上哪个软件也要这样)。在MX中加代
码时如不选,就一定要写明名称,实际上也是一种先择。
12,八项注意:1>按钮不能盖着输入文本,动态文本和输入文本域不能盖着按钮
2>用loadMoie时LEVEL1及以上的文件尽量少用大隐型按钮
3>从一个文件中复制MC实例到别一个文件中时,尽量复制帧,而不能直接
复制实例,
4>从一个文件中复制MC实例到别一个文件中时,要先把目标文件中的符
号库中原有的符号,装进资夹里,很多网友这个问题上上过当吧?
5>.....
Actionscript的基本语法规则
使用Actionscript编写脚本时,如果使用正常模式的动作面板,通过菜单和列表选择选项,可以创建简单的动作。要想用Actionscript编写功能强大的脚本,你就必须深入了解和学习Flash MX的Actionscript脚本语言。
像 其它脚本语言一样,Actionscript也有变量、函数、对象、操作符、保留关键字等语言元素,有它自己的语法规则。Actionscript允许用 户创建自己的对象和函数。Actionscript的语法和风格与javascript非常相似,但不完全相同。Actionscript拥有自己的句法 和标点符号使用规则,这些规则规定了一些字符和关键字的含义,以及它们的书写顺序。例如,在英语中用句号结束一个句子,而在Actionscript中则 用分号结束一个语句。
下面列出的是Actionscript的一些基本语法规则,对于比较比较特别的规则,请参阅Actionscript词典。
像 其它脚本语言一样,Actionscript也有变量、函数、对象、操作符、保留关键字等语言元素,有它自己的语法规则。Actionscript允许用 户创建自己的对象和函数。Actionscript的语法和风格与javascript非常相似,但不完全相同。Actionscript拥有自己的句法 和标点符号使用规则,这些规则规定了一些字符和关键字的含义,以及它们的书写顺序。例如,在英语中用句号结束一个句子,而在Actionscript中则 用分号结束一个语句。
下面列出的是Actionscript的一些基本语法规则,对于比较比较特别的规则,请参阅Actionscript词典。
1.点语法
在Actionscript中,点(.)被用来指明与某个对象或电影剪辑相关的属性和方法。它也用标识指向电影剪辑或变量 的目标路径。点语法表达式由对象或电影剪辑名开始,接着是一个点,最后是要指定的属性、方法或变量。例如,表达式ballMC.x是指电影剪辑实例 ballMC的_X属性,_X电影剪辑属性指出编辑区中电影剪辑的X轴位置。
例如,submit是在电影剪辑form中设置的一个变量,而form又是嵌套在电影剪辑shoppingCart中的电影剪辑。表达式shoppingCart.form.submit=true的作用是设置实例form的submit变量的值为true。
表达一个对象或电影剪辑的方法遵循相同的模式。例如,ballMC实例的play方法用于移动ballMC的时间轴播放头,就像下面的语句:
在Actionscript中,点(.)被用来指明与某个对象或电影剪辑相关的属性和方法。它也用标识指向电影剪辑或变量 的目标路径。点语法表达式由对象或电影剪辑名开始,接着是一个点,最后是要指定的属性、方法或变量。例如,表达式ballMC.x是指电影剪辑实例 ballMC的_X属性,_X电影剪辑属性指出编辑区中电影剪辑的X轴位置。
例如,submit是在电影剪辑form中设置的一个变量,而form又是嵌套在电影剪辑shoppingCart中的电影剪辑。表达式shoppingCart.form.submit=true的作用是设置实例form的submit变量的值为true。
表达一个对象或电影剪辑的方法遵循相同的模式。例如,ballMC实例的play方法用于移动ballMC的时间轴播放头,就像下面的语句:
ballMC.play();
点语法使用两个特殊的别名:_root和_parent。别名_root是指主时间轴。可以使用_root别名创建一个绝对路径。例如,下面的语句调用主时间轴中电影剪辑functions的buildGameBoard函数:
_root.functions.buildGameBoard();
Flash MX允许使用别名_parent来引用嵌套当前电影剪辑的电影剪辑。也可以用_parent创建一个相对目标路径。例如,如果电影剪辑dog被嵌套在电影剪辑animal之中,那么,在实例dog上的下列语句告诉animal电影剪辑停止播放:
_parent.stop();
2.斜杠语法
Flash的以前版本是使用斜杠语法指出电影剪辑或变量的目标路径的。Flash MX播放器仍然支持这种语法,但不推荐使用。在斜杠语法中,斜杠被用来代替点,用以标明电影剪辑或变量的路径。要指出一个变量,可以在变量前加上冒号,如下面的语句所示:
Flash的以前版本是使用斜杠语法指出电影剪辑或变量的目标路径的。Flash MX播放器仍然支持这种语法,但不推荐使用。在斜杠语法中,斜杠被用来代替点,用以标明电影剪辑或变量的路径。要指出一个变量,可以在变量前加上冒号,如下面的语句所示:
myMovieClip/childMovieClip:my variable
我们现在用点语法取代上述斜杠语法来表示上面的目标路径:
myMovieClip.childMovieClip.myvariable
斜杠语法在tellTarget动作中使用最为普遍,但这种动作在Flash MX中已不再推荐使用。
【说明】与其使用tellTarget动作还不如使用with动作与点语法兼容。
3.大括号
Actionscript语句用大括号({})分块,如下面的脚本所示:
Actionscript语句用大括号({})分块,如下面的脚本所示:
on(release){
myDate = new Date();
currentMonth = myDate.getMonth();
}
myDate = new Date();
currentMonth = myDate.getMonth();
}
4.分号
Actionscript语句用分号(;)结束,但如果你省略语句结尾的分号,Flash仍然可以成功地编译你的脚本。例如,下面的语句用分号结束:
Actionscript语句用分号(;)结束,但如果你省略语句结尾的分号,Flash仍然可以成功地编译你的脚本。例如,下面的语句用分号结束:
colum = passedDate.getDay();
row = 0;
row = 0;
同样的语句也可以不写分号:
colum = passdDate.getDay()
row = 0
row = 0
5.圆括号
定义一个函数时,要把参数放在圆括号中:
定义一个函数时,要把参数放在圆括号中:
function myfunction (name, age, reader){
…
}
…
}
调用一个函数时,也要把要传递的参数放在圆括号中:
myfunction ("Steve",10,true);
圆括号可以用来改变Actionscript的运算优先级,或使自己编写的Actionscript语句更容易阅读。
也可以用圆括号来计算点语法点左边的表达式。例如,在下面的语句中,圆括号使表达式new color(this)得到计算,并创建了一个新的颜色对象:
onClipEvent(enterFrame){
(new Color(this)).setRGB(oxffffff);
}
(new Color(this)).setRGB(oxffffff);
}
在上例中,如果不使用圆括号,就需要在代码中增加一个语句来计算它:
onClipEvent(enterFrame){
myColor = new Color(this);
myColor.setRGB(0xffffff);
}
myColor = new Color(this);
myColor.setRGB(0xffffff);
}
6.大小写字母
在Actionscript中,只有关键字区分大小写。对于其余的Actionscript,可以使用大写或小写字母。例如,下面的语句是等价的:
cat.hilite = true;
CAT.hilite = true;
但是,遵守一致的大小写约定是一个好的习惯。这样,在阅读Actionscript代码时更易于区分函数和变量的名字。如果在书写关键字时没有使用正确的大小写,你的脚本将会出现错误。例如下面的两个语句:
在Actionscript中,只有关键字区分大小写。对于其余的Actionscript,可以使用大写或小写字母。例如,下面的语句是等价的:
cat.hilite = true;
CAT.hilite = true;
但是,遵守一致的大小写约定是一个好的习惯。这样,在阅读Actionscript代码时更易于区分函数和变量的名字。如果在书写关键字时没有使用正确的大小写,你的脚本将会出现错误。例如下面的两个语句:
setProperty(ball,_xscale,scale);
setproperty(ball,_xscale,scale);
setproperty(ball,_xscale,scale);
前一句是正确的,后一句中property中的p应是大写而没有大写,所以是错误的。在动作面板中启用彩色语法功能时,用正确的大小写书写的关键字用蓝色区别显示,因而很容易发现关键字的拼写错误。
7.注释
需要记住一个动作的作用时,可在动作面板中使用comment(注释)语句给帧或按钮动作添加注释。如果你在协作环境中工作或给别人提供范例,添加注释有助于别人对你编写的脚本的正确理解。
在动作面板中选择comment动作时,字符“//”被插入到脚本中。如果在你创建脚本时加上注释,即使是较复杂的脚本也易于理解,例如:
需要记住一个动作的作用时,可在动作面板中使用comment(注释)语句给帧或按钮动作添加注释。如果你在协作环境中工作或给别人提供范例,添加注释有助于别人对你编写的脚本的正确理解。
在动作面板中选择comment动作时,字符“//”被插入到脚本中。如果在你创建脚本时加上注释,即使是较复杂的脚本也易于理解,例如:
on(release){
//建立新的日期对象
myDate = new Date();
currentMonth=myDate.getMonth();
//把用数字表示的月份转换为用文字表示的月份
monthName = calcMoth(currentMonth);
year = myDate.getFullYear();
currentDate = myDate.getDat();
}
//建立新的日期对象
myDate = new Date();
currentMonth=myDate.getMonth();
//把用数字表示的月份转换为用文字表示的月份
monthName = calcMoth(currentMonth);
year = myDate.getFullYear();
currentDate = myDate.getDat();
}
在脚本窗口中,注释内容用粉红色显示。它们的长度不限,也不影响导出文件的大小。
8. 关键字
Actionscript保留一些单词,专用于与本语言之中。因此,不能用这些保留字作为变量、函数或标签的名字。下表列出了Actionscript中所有的关键字:
break continue delete else
for function if in
new return this typeof
var void while with
【注意】这些关键字都是小写形式,不能写成大写形式。
9.常量
常量有其值永不改变的属性。常数用大写字母列于动作工具箱中。例如,常数BACKSPACE、ENTER、QUOTE、RETURN、SPACE和TAB是Key对象的属性,指键盘上的键。要测试用户是否在按Enter键,可使用下面的语句:
常量有其值永不改变的属性。常数用大写字母列于动作工具箱中。例如,常数BACKSPACE、ENTER、QUOTE、RETURN、SPACE和TAB是Key对象的属性,指键盘上的键。要测试用户是否在按Enter键,可使用下面的语句:
if(keycode()= =key.ENTER){
alert = "你准备好了吗?"
controlMC.gotoAndStop(5);
}
alert = "你准备好了吗?"
controlMC.gotoAndStop(5);
}
Actionscript中的术语
Actionscript根据特定的语法规则使用特定的术语。以下按字母顺序介绍重要的Actionscript术语.
Actions(动作):是指导Flash电影在播放时执行某些操作的语句。例如,gotoAndStop动作就可以将播放头转换到指定的帧或帧标记。Action(动作)也可以被称作statement(语句)。
Arguments(参数):是允许将值传递给函数的占位符。例如,以下语句中的函数welcome就使用了两个参数firstName和hobby来接收值:
function welcome(firstName,hobby) {
welcomeText = "Heelo," + firstName + "I see you enjoy" + hobby;
}
Classed(类):是各种数据类型。用户可以创建“类”并定义对象的新类型。要定义对象的类,用户需创建构造器函数。
Constants(常量):是不会改变的元素。常量对于值的比较非常有用。
Constructors(构造器):是用来定义“类”的属性和方法的函数。以下代码通过创建Circle构造器函数生成了一个新的Circle类。
function Circle(x, y, radius) {
this.x = x;
this.y = y;
this.radius = radius;
}
Dat
15:09 固定链接 引用通告 (0) 记录它 计算机与 Internet
固定链接 http://dazhige.spaces.live.com/blog/cns!246BDDE3A44301B4!117.entry
Flash 常见问答解答五
Flash中的路径的作用是什么?
固定链接 http://dazhige.spaces.live.com/blog/cns!246BDDE3A44301B4!117.entry
Flash 常见问答解答五
Flash中的路径的作用是什么?
如果你用过DOS,您就可以很容易理解FLASH的路径。简单地说,路径就是在FLASH编程时能够找到变量或者符号(Symbol)所经过的路。其方式跟DOS一样,分成相对的和绝对的两种。
Action中,/:与/有什么区别,各在什么时候用?
/:是表示某一路径下的变量,如/:a就表示根路径下的变量a,而/表示的是绝对路径。
如何在MC中控制主场景的播放?
Flash5中_root表示主场景,用_root play()即可控制主场景的播放。
如何在Flash中打开一个定制的浏览器新窗口?
添加
Get URL ("javascript:window.open('new.htm','newwin','width=320,height=320');")
点一个按钮就放音乐,再点它一下就停音乐这个效果该如何做?
第一下设置gotoandplay(),那一帧设置成play sound
第二下再跳到另一帧然后stop all sound
如何改变调入后的SWF大小?
setProperty ("MC_Name", _xscale, size_x);
setProperty ("MC_Name", _yscale, size_y);
“MC_Name”顾名思义是那个MC的名字了,“_xscale”和“_yscale”是指这个MC的X与Y点的位置,这个位置是用来控制MC大小的。其“size_x”和“size_y”为设定这个MC具体大小的数值。
如何改变调入后的swf的位置?
一个简单的方法是,我们可以来移动那个已给置入Mocie文件的MC,就像我们用来改变一张图的位置那样用鼠标拖动它。
另一个方法是利用setProperty来进行改变这个MC的位置。
setProperty ("MC_Name", _x, "position_x");
setProperty ("MC_Name", _y, "position_y");
“MC_Name”是MC的名字,“_x”和“_y”指的是X坐标和Y坐标点,而“position_x”与“position_y”是位置具体的数值。
如何让一个MC调用另一个MC里设置的一个变量?
在mc里输入此语句:(a b 均为变量名,mcname为mc的实体名)
a = _root.mcname.b;
此语句是使本mc的变量a调用_root.mcname这个mc里的变量b
在Flash中如何打开Word文档?
Flash不支持调用Word文件,但浏览器可以直接打开.doc文档,那么就用getURL来解决即可,路径用绝对地址 http://www..../word.doc。
在Flash中如何调用mpeg文件?
Flash中不支持调用mpeg文件,首先要安装一个三方软件,名字为Swiffcanvas1.0;接着打开fla文件,如果mpeg文件的目录为aa,mpeg文件名字为bb,那么就可以就添加下面的语句:
FS Command ("exec", "SwiffEXEC(LOCAL:aaa/111.mpeg)");
然后把fla文件输出为exe文件 ,并用Swiffcanvas打开这个exe文件,然后在Swiffcanvas里设置完成自己的要求。最后再输出为.exe文件,就可以了。
如何在MC中载入外部动画或其他动画?
我们经常要用到在主动画中载入子动画(swf文件 )的情况。但是,这种方式载入后,载入的动画往往不在我们需要的座标位置上。有个简单的办法可解决这个问题。我们先建立一个空MC。将该MC拖到主场景 中,并为之命名(Instance),如“bb”。然后在主场景的相应帧加上Action,在action面板中的URL中填入要载入的swf文件, “Location”栏选“Target”,在其后的空栏中填入“/bb”。这样子swf文件就载入到实体名为“bb”的MC中了。现在,我们只要控制该 MC在场景中的位置,就可控制载入的子动画的精确座标了。
Flash内怎么用js或java?
答:on(release){
geturl("jscript:alert'........'";)
}
on(release){
thanx="thanks";
}
在ActionScript的编辑窗口中怎么输入中文?
可以更换Flash的字体,也就是删除Windows/Fonts/modem.fon,这样,编辑窗口的字体就好看多了。
Flash如何与数据库连接?
答:只能通过后台文件,如CGI脚本,Active Server Pages (ASP),或 Personal Home Page (PHP)等。传递值到flash中,实现数据库的操作。
在用FsCommand中可以调用javascript吗?
答:FsCommand可以调用JS函数MovieName_DofsCommand装入Flash动画。MovieName是 Flash动画的名字由Embed标签的Name属性或是Object标签的ID属性指定,如果FlashPlayer的名字为MYMOVIE,应该调用 JS函数名字为MYMOVIE_DOFSCOMMAND。