FLASH中actionscript代码

合集下载

flashActionScript编程(适合教学)

flashActionScript编程(适合教学)

(7)改进的“字符串”面板。“字符串”面板中添加 了对String字段和XML文件的多行支持。
(8)在Flash Player中增强了本地文件的安全性。在 Flash Player中,当用户运行硬盘上的SWF文件时为本地文 件提供额外的安全保护。
(9)通过ActionScript使用滤镜。用户可以使用 ActionScript代码对舞台上的对象应用多种滤镜。
Include类文件夹 :包含所有的全局ActionScript include 文件。
ActionsPanel.xml配置文件:包含用于ActionScript 代码提 示的配置文件。
AsColorSyntax.xml 配置文件 :包含用于 ActionScript 代 码颜色语法加亮显示的配置文件。
图11.1.4 “动作”面板
(2)“动作”面板的组成。“动作”面板主要由3个部分 组成:动作工具箱、脚本导航器和脚本输入区。
1)动作工具箱位于“动作”面板的左上方,以分类的方 式列出了Flash中包含的所有语句,包括全局函数、全局属性、 运算符、语句、ActionScript 2.0类、编译器指令、常数、类型、 数据组件、组件、屏幕和索引。只要用鼠标双击其中的任意一 个元素或者应用拖曳的方式,即可将其添加到“脚本”窗格中。
图11.1.7 “查找和替换”对话框 话框
图11.1.8 “插入目标路径”对
“语法检查”按钮:用来检查用户输入的脚本中是否存在 语法错误。单击该按钮可检查当前脚本中的语法错误,如果语 法正确,弹出如图11.1.9所示的提示框。如果脚本中有错误, 则会弹出如图11.1.10所示的提示框,并打开如图11.1.11所示 的“输出”面板,说明错误的详细信息。
图11.1.6 命令级联菜单

ActionScript编程 Flash 影片发布设置

ActionScript编程  Flash 影片发布设置

ActionScript编程Flash 影片发布设置作用:执行【文件】|【发布预览】和【文件】|【发布】命令,预览和发布影片或应用程序。

说明:在Flash CS4中,允许用户将影片发布为多种格式,例如,swf动画、带有swf动画的html、GIF图像、JPEG图像、PNG图像、Windows 放映文件(EXE)和Macintosh放映文件(APP)等。

本节将以swf动画为例,介绍Flash影片的发布设置。

1.Flash发布设置执行【文件】|【发布】命令,即可在弹出的【发布设置】对话框的【格式】选项卡中选择发布的文件格式。

当选中某个格式后,对话框中将新增相应格式的选项卡,如图15-1所示。

图15-1 发布设置对话框选中“Flash (.swf)”后,即可单击【格式】选项卡右侧的【Flash】选项卡,对发布的Flash影片进行设置,如图15-2所示。

图15-2 Flash发布设置在【发布设置】的【Flash】选项卡中,包含如下各种设置。

●播放器该列表框用来选择Flash Player播放程序的版本,其选项包括Flash Player1.0到10.0以及Flash Lite1.0到3.1(用于手机的Flash播放器)。

如用户安装了Adobe AIR插件,还将显示发布为Adobe AIR程序。

(关于AIR的发布设置,请参考本章相关小节)●脚本该列表框用于设置发布影片的ActionScript版本。

在其右侧的【设置】按钮可以配置影片的动作脚本信息。

(关于配置脚本的信息,请参考本章相关小节)●JPEG品质要控制位图压缩,可以调整【JPEG品质】滑块或者输入一个值,其中,图像品质越低,生成的文件就越小;图像品质越高,压缩比例越小,生成的文件就越大。

通常以80%为宜。

●启用JPEG解块启用该选项可有效减少低品质图像的失真程度●音频流单击其右侧的【设置】按钮,可对发布影片中的音频质量进行设置。

(关于音频设置,请参考本章其他小节)●音频事件单击其右侧的【设置】按钮,可对发布影片中事件触发的声音质量进行设置。

ActionScript 编程实战 Flash动作面板概述

ActionScript 编程实战  Flash动作面板概述

ActionScript 编程实战Flash动作面板概述ActionScript1.0和2.0的多数代码都是写在时间轴或元件中,而ActionScript3.0以后,只允许将代码写在时间轴和外部的类文件中。

将代码写在时间轴上,就需要使用到Flash 的【动作面板】。

1.动作面板在FlashCS4中,执行【窗口】|【动作】命令或按F9快捷键即可打开【动作】面板。

通过【动作面板】,用户可以将ActionScript脚本代码写在Flash的时间轴上,并对脚本代码进行格式化、验证语法等操作,如图1-11所示。

图1-11 【动作】面板在图1-11中,包含4个部分,如下所示。

●【动作工具箱】在【动作】面板中,【动作工具箱】的作用是提供ActionScript所有的包、类、属性和方法列表。

(关于包、类、属性和方法,请参考之后的面向对象编程相关章节)用户可以根据程序编写的需要,自行选择相应地语言元素,双击该元素,将其添加到代码中。

●【脚本导航器】【脚本导航器】的作用是提供当前编辑的代码位置,以及当前影片中所有代码的位置列表。

除当前选择的代码外,每段代码根据其所在的场景和图层、帧的位置顺序进行排列。

●【脚本助手】【脚本助手】的作用是显示和修改当前选择的表达式值、函数的名称、参数和数据类型等相关信息。

●【脚本窗格】【脚本窗格】的作用是输入和编辑脚本代码用户可以方便地拖动【动作】面板中各部分之间地分隔线,可以方便地调整各部分地大小。

同时,用户也可以对【动作】面板地边缘进行拖动,改变【动作】面板的大小。

2.【动作】面板的【脚本窗格】Flash CS4在【脚本窗格】中提供了一组按钮,可以帮助用户对ActionScript代码进行调试和格式化,如图1-12所示。

图1-12 【脚本窗格】在上面的【脚本窗格】中,包含如下按钮。

●【将新项目添加到脚本中】按钮单击该按钮,将弹出ActionScript各包及类的菜单供用户选择,并添加到代码中。

Flash ActionScript3.0用代码来制作取色板

Flash ActionScript3.0用代码来制作取色板

我们先来看效果。

在场景的左上角有一个取色板,如果我鼠标在取色板上点击,那相应的被点击部位的颜色就会显示在整个背景中,同时输出面板会输出这个颜色的值。

AS当中提供了小到像素级的访问和操作,通过对像素级别的操作可以实现无穷的变化,只要你有想象力,你的方法合理,就能创作出惊人的效果。

常见的像素级别的操作方法一般有:getPixel和setPixel是用于访问和处理像素点24位RGB像素值;getPixel32、setPixel32本身是对32位颜色信息处理;getPixels和setPixels是对一组像素进行处理。

下面我们通过一个具体的实例,也就是取色板,来讲解对像素级别的颜色值的访问方式。

来看代码,代码里面注释部分比较多。

FLASH ActionScript的介绍

FLASH  ActionScript的介绍

ActionScript的介绍时间轴控制命令gotoAndPlay()跳转播放命令语法:gotoAndPlay([scene,]frame)—Scene可选字符串,指定播放头要转到的场景名称。

—frame表示将播放头转到的帧编号的数字,或者表示将播放头转到的帧的标签的字符串。

gotoAndStop()跳转停止命令语法:gotoAndPlay([scene,]frame)—Scene可选字符串,指定播放头要转到的场景名称。

—frame表示将播放头转到的帧编号的数字,或者表示将播放头转到的帧的标签的字符串。

play();播放stop();停止鼠标事件命令On(参数){命令}—press鼠标按下后触发命令—release按下鼠标点击后抬起时触发命令—releaseOutside按下鼠标后并拖出按钮范围时触发命令—keyPress键盘控制按键后触发命令—rollOver鼠标滑过的时候触发命令—rollOut鼠标滑出的时候触发命令—dragOver按下并拖动鼠标移动出按钮区域时触发命令—dragOut按下并拖动鼠标进入按钮区域时触发命令prevFrame(); 上一帧nestFrame(); 下一帧prevScene(); 上一场景nextScene(); 下一场景以上这些命令没有参数,一般都与事件操作命令结合使用。

stopAllSounds(); 停止所有声音播放。

浏览器网络命令Fscommand(命令) 发送指令到Flash Player—“quit”关闭播放器—“fullscreen”参数是true(真)falsc(假),设置为全屏模式—“allowscale”命令是视图缩放—“showmenu”视图的鼠标右键示例:on (press) {fscommand("quit", true);}译:鼠标按下后触发fscommand命令,即发送fscommand指令到Flash Player,如果为真,则执行“quit”命令,即关闭播放器。

Flash ActionScript编程

Flash ActionScript编程


上面的都是方法。
详细基础教程——第二讲
2、控制属性的语法。有很多,列举几个 _x _y _alpha _width _name 以上都是舞台元素的属性

详细基础教程——第二讲

3、控制语句流程的语法,如 if (条件){ //条件满足执行这里的代码 }else{ //条件不满足执行这里的代码 } for(i=0;i<N;i++){ //执行这里的代码N次 } while(条件){ //当条件满足时一直执行这里的代码 }


详细基础教程——第一讲

MC的事件有下面这些:

load 载入,当MC出现的时候执行。也就是除非卸载这个 MC,否则load事件内的代码只执行一次 unload 卸载,当MC卸载的时候执行 enterFrame 存在的每个帧。在MC存在的每个帧都要执行 一次代码。如果你的场景有100个帧,有个MC从41帧开始 出现到100帧才消失,那么这个MC上面的代码执行了60次 mouseDown 按下鼠标,在场景内任何地方都算。和按钮 不一样的地方 mouseMove 移动鼠标,只要移动鼠标就执行代码 mouseUp 松开鼠标 同样你要明确:写在MC上的代码一定总是这种格式: onClipEvent(事件){代码}
详细基础教程——第一讲
首先我们要了解AS要写在什么地方,什么时候AS会被触发执 行。 1、帧: 写在关键帧上面的AS,当时间轴上的指针走到这个关键 帧的时候,就写在这个帧上面的AS就被触发执行了。常 见的例子有在影片结尾的帧写上 stop() 等。操作方法就是 点选关键帧,然后打开AS面板。 2、按钮: 不同于帧上面的AS,按钮上面的AS是要有触发条件的。 要把AS写在按钮上,操作方法是点选目标按钮,然后打 开AS面板。举个例子能说的更明白。 假设有一个动画,要让它在播放完同时停止,那么,你要 做的就是在这个动画的最后一帧写AS stop();

Flash教程 第八章 ActionScript编程

Flash教程 第八章 ActionScript编程

实例:set ( "x" , 10 )
set ( "c" + i , x )
注意:第一个参数的变量或对象名需用双引 号作定界符
前一页 下一页
休息 15
控制结构
直接赋值
例: x = 10
赋 值 语 句
注意:
两种形式性质相同,一般可替换:
观察变量赋值情况
“控制”-“测试场景” “调试”-“参数列表”从output窗口中
注意:如果动作脚本与实例不在同一时间轴,必

须在实例名前加上路径

例:_root . fly . _alpha = mc // 设置主时间轴中的fly实例的alpha属性

_root . mosq . fly . _alpha = 50

// mosq 是 fly 的父剪辑
实例:
影片剪辑的属性
前一页 下一页
如:getVersion( ) 获得当前FLASH版本
前一页 下一页
休息 21
函数的使用
常用通用函数
eval(variable ):获取指定变量的值 true:得到“真” false:得到“假”
函 Newline:插入新的一行 数 getTimer:得到系统当前时间
getVersion:显示播放时所用Flash版本 random( number):产生0到 number – 1 间的
随机整数。
前一页 下一页
休息 22
函数的使用
常用字符串函数
substring( string, index, count ):取 string 字 符串的子串,从 index 开始取 count 个字符。

FLASH中actionscript代码

FLASH中actionscript代码

FLASH中actionscript代码----调用外部文件详解作者: 网友添加来源: 互联网发布日期:2005-11-24 点击次数: 3865 FLASH调用外部文件详解Flash加载外部文件Flash可以通过帧、按扭、影片剪辑来调用外部文件。

调用的外部文件包括:外部文本文件、外部程序文件、外部*.swf文图片文件、外部音乐文件、外部脚本文件。

一.调用外部文本文件:(文本文件开头要以flash中的动态文本框的变量名开头,如msg=".........."这样的形式,要和编辑的Flash文件放在同一目录下)1.用工具箱中的文本工具,选择动态文本,给动态文本一个变量名,如:msg,在编辑区拖出一个文本框2.制作两个按扭(一个调用,一个清除)拖放到场景中。

3.调用按扭上添加AS:on(release){//松开鼠标后执行下面的代码;loadVariables("msg.txt",msg);//调用和你编辑的Flash处于同一目录下的msg.txt文本文件到动态文本msg中;eCodepage=true;//使外部文件的中文字符能够正确显示;}4.清除按扭上的AS:on(release){//松开鼠标后清楚动态文本框中的内容;msg="";}5.Ctrl+Enter测试.当然代码也可以写在帧上:(调用按扭的实例名是bt1,清除按扭的实例名是bt2)在第一帧上加如下代码:stop();_root.bt1.onRelease=function(){loadVariables("msg.txt",msg);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中;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,向下按扭上的实例n)在第一帧上加如下代码:_root.bt1.onRelease=function(){//松开鼠标后执行下面的代码;loadVariables("msg1.txt",msg);//调用msg1.txt文本文件到动态文本框msg中;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的ActionScript脚本语句的用法

Flash的ActionScript脚本语句的用法

很多朋友经常询问关于Flash的ActionScript脚本语句的用法,有些很简单的命令就能实现某种功能,现在我就把一些Flash的常用Action语句的基本用法讲解一下。

1、Goto:跳到一个指定的帧(Frame)Scene: 指定SceneFrame:Number,Label,EXPression,Next Frame,Previous Frame可以选择Frame 的编号,标号,通过表达式,下一帧,前一帧Expression: 定义表达式Control:Go to and Play,Go to and Stop通过选择这个项目来确定到达指定的帧以后是继续播放还是停止例子:Go to and Play (1)跳到第一帧播放Go to Next Frame跳到下一帧播放Go to and Stop ("intro")跳到标号为intro 的帧播2、Play:播放Stop:停止Toggle High Quality:切换画面的细节程度Stop All Sounds:停止所有声音Get URL:打开指定的网址URL: 网址Windows:_self,_blank,_parent,_top打开网址时使用的目标Variables on’t Send,Send use GET,Send use POST变量的传递方式例子:Get URL ("next.asp", window="_blank", vars=POST)在新窗口中打开next.asp,并且传递参数3、FScommand:调用命令Command: 命令Arguments: 参数For standalone player:fullscreen,allowscale,showmenu,exec,quit播放器使用的固定命令和参数例子:FS Command ("fullscreen", "true")设置全屏幕播放4、Load/Unload Movie:调入/释放外部的影片Action:Load movie into location,Unload movie from location,Load variables into locati on: 可以选择是否调入新影片,释放已经调入的影片,调入变量URL:影片的网址Location:Level,Target: 调入的层,或者是某一目标对象的位置Variables on’t Send,Send use GET,Send use POST: 变量的传递方式例子:Load Movie ("test.swf", 1): 把test.swf 调入到第一层Load Movie ("test.swf", "loadit", vars=GET): 把test.swf 调入到loadit 目标对象的位置Unload Movie ("loadit"): 把loadit 目标对象处的影片释放Load Variables ("makeit.asp", 2, vars=GET): 调用makeit.asp 并接收返回的变量5、Tell Target:指定目标对象Target: 目标对象例子:Begin Tell Target ("obj")指定目标对象objEnd Tell Target6、If Frame is Loaded:判断某帧是否调入Scene: 指定场景Frame:Number,Label,Expression: 指定帧,标号或者表达式Expression: 表达式例子:If Frame Is Loaded (Scene 1, "end")End Frame Loaded:判断场景一的标号为end 的帧是否调入7、On MouseEvent鼠标时间响应Event ress,Release, Release Outside,Roll Over,Roll Out,Drag Over,Drag Out,Key Pres s各种事件:按下,放开,在外面放开,焦点移入,移出,拖过,拖出,按键按下例子:On (Press) 鼠标按下的时候End OnOn (Key: s)键盘上s 按下的时候End On8、If判断条件是否成立Condition: 条件Add Else/Else If clause: 加入Else 再次判断例子:If (a=10)如果a=10 那么……End IfIf (a=10)如果a=10 那么……不然……ElseEnd If9、Loop循环Condition:条件例子:Loop While (a=10)如果a=10 那么循环End Loop10、Call调用函数帧或对象Frame:函数帧例子:Call ("make")调用make 帧程序11、Set Property设置属性Set:Y Positon,X Position,Y Scale,X Scale,Alpha,Visibility,Rotation,Name,High quality,S how focus rectangle,Sound buffer time设置y 坐标,x坐标,y 放大倍数,x 放大倍数,透明度,可视否,旋转角度,名称,精细度,焦点矩形框是否显示,声音缓冲时间(默认5秒)Target:目标对象value:值例子:Set Property ("aoe", X Position) = "12"设置目标对象aoe 的x 坐标为12Set Property (Show focus rectangle) = "0"取消焦点框12、Set Variable设置变量Variable:变量value:值例子:Set Variable: "test" = 10设置test=1013、Duplicate/Remove Movie Clip复制对象Action uplicate movie clip,Remove duplicate movie clip可选择是复制还是删除Target:目标对象New name:新目标对象的名字Depth:深度例子:Duplicate Movie Clip ("aoe", "aoe2", 1)复制aoe 一个新的动画,名字叫aoe2Remove Movie Clip ("aoe2")删除目标对象aoe214、Drag Movie Clip 拖动影片片段Start drag operation:开始拖动Target:目标对象Constrain to rectangle:Left,Top,Right,Bottom鼠标的位置,左上右下Lock mouse to center:鼠标放置在中心Stop drag operation停止拖动例子:Start Drag ("aoe", L=2, T=3, R=4, B=5)拖动目标对象aoe,位置在L=2, T=3, R =4, B=5Start Drag ("aoe", lockcenter)拖动目标对象aoe,位置在中心Stop Drag停止拖动15、Trace 跟踪Message:信息例子:Trace ("aoe")显示aoeTrace (aoe)显示aoe 的值16、Comment注释Comment:注释例子:Comment ("计算")注释:计算。

FLASHActionscript2.0脚本代码大全

FLASHActionscript2.0脚本代码大全

FLASHActionscript2.0脚本代码大全一.基本脚本代码:- Go to 跳转到指定的帧- Play 播放- Stop 停止- Toggle High Quality 在高画质和低画质间切换- Stop All Sounds 停止所有声音的播放- Get URL 跳转至某个超联结- FSCommand 发送FSCommand命令- Load Movie 装载影片- Unload Movie 卸载影片- Tell Target 告知目标- If Frame Is Loaded ..判断帧是否被完全载入- On Mouse Event 鼠标事件二.其他Actionscript2.0- break 跳出循环- call 调用指定帧(一般喊有某个特定函数)- comment 注释- continue 继续循环- delete 删除一个对象(Object)中的变量- do while do while循环- duplicateMovieClip 复制MC- else 否则(与if联用)- else if 否则如果(与if联用)- uate 调用自定义函数(Function)- for for循环- for .. in 依次取得对象(Object)中的各个属性或者某个数组中的所有元素- FSCommand 发送FSCommand命令- function 声明自定义函数- getURL 跳转至某个超联结- goto 跳转到指定的帧- if 如果- ifFrameLoaded ..帧是否完全被载入- include 读入外部的ActionScript程序文件(.as)- loadMovie 装载MC- loadVariables 转载外部文件中的数据,这些外部文件可以是文本文件,或者是由ASPCGI等脚本返回的文本值- on 鼠标事件的触发条件- onClipEvent MC的事件触发程序- play 播放- print 输出到打印机- removeMovieClip 删除MC- return 在函数(function)中返回一个值- set variable 设定变量值- setProperty 设定属性- startDrag 开始拖动- stop 停止- stopAllSounds 停止所有声音的播放- stopDrag 停止拖动- swapDepths 交换两个MC的深度- tellTarget 指定Action命令生效的目标- toggleHighQuality 在高画质和低画质间切换- trace 跟踪调试- unloadMovie 卸载MC- var 声明局部变量- while 当..成立时..- with 对..对象(Object)做..。

《Flash CS3动画制作》ActionScript 的应用(模块七)

《Flash CS3动画制作》ActionScript 的应用(模块七)
一种特殊的函数,在使用new关键字创建类的 实例时(例如var my_bl:XML = new XML();)会自动调用这种函数。
➢ 匿名函数:匿名函数是引用其自身的未命名函数,该函数在创建时便 被引用。
➢ 回调函数:回调函数通过将匿名函数与特定的事件关联来创建,这种 函数可以在特定事件发生后调回。
变量的作用域
变量的作用域是指变量能够被识别和应用的区域。根据变量的作用域 可将变量分为全局变量和局部变量。全局变量是指在代码的所有区域 中定义的变量,而局部变量是指仅在代码的某个部分定义的变量。在 ActionScript 3.0中,在任何函数或类定义的外部定义的变量都为全局 变量;而通过在函数定义内部声明的变量则为局部变量。
(3)选择【插入】→【新建元件】菜单命令,在打开的“创建新元件 ”对话框中创建“车轮动”影片剪辑元件。
(4)将“库”面板中的“车轮.png”拖动到“车轮动”影片剪辑元件场 景中,调整其大小放置到如图所示位置。
放置车轮
操作一 制作停止车轮的转动
(5)接着在第2帧处插入关键帧,然后在第2帧到第30帧之间创建车轮 滚动的动作补间动画。
逻辑运算符
按位逻辑运算符
操作四 运算符与表达
运算符的优先级
运算符的优先级
操作五 ActionScript的添加方法
根据动画的实际需要,为相应的关键帧添加Action脚本,其操作步骤如 下:
(1)在时间轴中选中要添加Action脚本的关键帧。
(2)选择【窗口】→【动作】菜单命令,或按“F9”键,打开“动作帧”面板。
操作二 认识变量
变量的类型
➢ Numeric:数值变量,包括Number、Int和Uint3种变量类型。Number 适用于任何数值;Int用于整数;Uint则用于不为负数的整数。

flash--第10章ActionScript编程语言和交互动画制作

flash--第10章ActionScript编程语言和交互动画制作

10.1 动作脚本和“动作”面板
10.1.2 “动作”面板快捷菜单命令的作用
单击“动作”面板的快捷菜单按钮,可调出“动作”面板的快捷菜单。其 他菜单命令的作用如下。 (1)“转到行”:单击它可弹出“转到行”对话框,在“行号”文本框 内输入程序编辑区中的行号,单击“确定”按钮,该行即被选中。 (2)“导入脚本”:单击它,可调出“打开”对话框。利用该对话框, 可以从外部导入一个“*.as”的脚本程序文件,它是一个文本文件。 (3)“导出脚本”:单击它,可调出“另存为”对话框。利用该对话框, 可将当前程序编辑区中的程序作为一个“*.as”的脚本程序文件保存。 (4)“打印”:单击它,可调出“打开”对话框,将当前程序编辑区中 的程序打印出来。 (5)“查看Esc快捷键”:选中它,可使命令列表区内各命令右边显示它 的快捷键。 (6)“自动套用格式选项”:单击它,可调出“自动格式选项”对话框。 利用该对话框,可以设置程序的格式。 (7)“首选项”:单击它,可调出“首选参数”(动作脚本)对话框, 如图10-1-12所示。利用它可以进行动作脚本的默认状态和参数的设置。
10.1 动作脚本和“动作”面板
10.1.3 设置事件与动作
4.设置影片剪辑元件的事件与动作
将影片剪辑元件从“库”面板中拖曳到舞台时,即完成了一个影片剪辑的实 例化,通常将这个在舞台中的影片剪辑元件的实例叫做影片剪辑实例。在舞 台中的影片剪辑实例是可以通过鼠标、键盘、帧等的触发而产生事件的,并 通过事件来执行一系列动作(即程序)。 使用工具箱内的“选择工具”选中舞台工作区内的影片剪辑实例,单击“窗 口”→“开发面板”→“动作”命令,调出“动作-影片剪辑”面板。这个面 板与“动作-帧”面板和“动作-按钮”面板的使用方法基本一样。 用鼠标将“动作-影片剪辑”面板左边命令列表区内“全局函数”→“影片剪 辑控制”目录下的onClipEvent命令拖曳到右边程序编辑区内。这时面板右边 程序编辑区内会弹出如图10-1-16所示的影片剪辑实例事件命令菜单。双击该 菜单中的选项,可以在onClipEvent命令的括号内加入影片剪辑实例事件命令。 例如:双击load命令后,程序编辑区内的程序如图10-1-16所示。在press命令 右边输入英文字符“,”后,单击辅助按钮栏内的“显示代码提示”按钮,即可 调出如图10-1-16的影片剪辑实例事件命令菜单,双击该菜单中的keyDown命 令,即可再加入相应的事件命令,如图10-1-17所示。可见影片剪辑实例可以

flash_ actionscript3.0 (语句、关键字和指令)

flash_ actionscript3.0 (语句、关键字和指令)

语句是在运行时执行或指定动作的语言元素。

例如,return 语句会为执行该语句的函数返回一个结果。

if 语句对条件进行计算,以确定应采取的下一个动作。

switch 语句创建ActionScript 语句的分支结构。

属性关键字更改定义的含义,可以应用于类、变量、函数和命名空间定义。

定义关键字用于定义实体,例如变量、函数、类和接口。

主表达式关键字表示文本值。

若要获得保留字的列表,请参见《ActionScript 3.0 编程》。

指令包含语句和定义,在编译时或运行时起作用。

下表中将既不是语句也不是定义的指令标记为指令。

语句break 出现在循环(for、for..in、for each..in、do..while 或while)内,或出现在与 switch 语句中的特定情况相关联的语句块内。

case定义 switch 语句的跳转目标。

continue 跳过最内层循环中所有其余的语句并开始循环的下一次遍历,就像控制正常传递到了循环结尾一样。

default定义 switch 语句的默认情况。

do..while 与 while 循环类似,不同之处是在对条件进行初始计算前执行一次语句。

else指定当 if 语句中的条件返回 false 时要运行的语句。

for计算一次 init(初始化)表达式,然后开始一个循环序列。

for..in 遍历对象的动态属性或数组中的元素,并对每个属性或元素执行 statement。

for each..in遍历集合的项目,并对每个项目执行 statement。

if计算条件以确定下一条要执行的语句。

label将语句与可由 break 或 continue 引用的标识符相关联。

return导致立即返回执行调用函数。

super调用方法或构造函数的超类或父版本。

switch根据表达式的值,使控制转移到多条语句的其中一条。

throw 生成或抛出(使用throw语句)一个可由 catch 代码块处理或捕获的错误。

FlashActionscript教程:游戏中的碰撞...-电脑资料

FlashActionscript教程:游戏中的碰撞...-电脑资料

FlashActionscript教程:游戏中的碰撞...-电脑资料教程简单碰撞下面是代码://把你舞台上的MC实例名放入数组,测试var ballA:Array = [ball1, ball2, ball3, ball4, ball5];//随机初始化每个MC的运动速度和方向for (var i = 0; i<="">ballA.dx = 11*rand1_1();ballA.dy = 7*rand1_1();}//随机产生1或-1function rand1_1():Number {return random(2) ? -1 : 1;}Stage.scaleMode = "noScale";Stage.align = "TL";var sw:Number = Stage.width;var sh:Number = Stage.height;var stageListener:Object = new Object();//舞台大小改变时,重置sw、shstageListener.onResize = function() {sw = Stage.width;sh = Stage.height;};Stage.addListener(stageListener);nEnterFrame. = function () {for (var i = 0; i<="">//检测所有MC之间是否有碰撞,有就根据情况改变“增量”方向for (var j = i+1; j<="">if (ballA.hitTest(ballA[j])) {mc12(ballA, ballA[j]);ballA._x += ballA.dx;ballA[j]._x += ballA[j].dx;ballA._y += ballA.dy;ballA[j]._y += ballA[j].dy;}}//如果到了边界,就反射if ((ballA._xsw-ballA._width/2 && ballA.dx>0)) {ballA.dx *= -1;}if ((ballA._ysh-ballA._height/2 && ballA.dy>0)) {ballA.dy *= -1;}//移动一个“增量”ballA._x += ballA.dx;ballA._y += ballA.dy;}};//碰撞函数,根据两球碰撞方向和自身运动方向合成新的增量值function mc12(mc1:MovieClip, mc2:MovieClip) {var ang:Number = Math.atan2(mc2._y-mc1._y, mc2._x-mc1._x);var ang1:Number = Math.atan2(mc1.dy, mc1.dx);var ang2:Number = Math.atan2(mc2.dy, mc2.dx);var r1:Number = (mc1.dy/Math.sin(ang1))*Math.cos(ang-ang1);var r2:Number = (mc2.dy/Math.sin(ang2))*Math.cos(ang-ang2);var dx1:Number = r1*Math.cos(ang)+r2*Math.cos(ang);var dy1:Number = r1*Math.sin(ang)+r2*Math.sin(ang);mc1.dx = -mc1.dx+dx1;mc1.dy = -mc1.dy+dy1;mc2.dx = -mc2.dx+dx1;mc2.dy = -mc2.dy+dy1;}加入反弹效果代码://把你舞台上的MC实例名放入数组,测试var ballA:Array = [ball1, ball2, ball3, ball4, ball5];//随机初始化每个MC的运动速度和方向for (var i = 0; i<="">ballA[i].dx = 5*rand1_1();ballA[i].dy = 5*rand1_1();ballA[i].N=i;}//随机产生1或-1function rand1_1():Number {return random(2) ? -1 : 1;}Stage.scaleMode = "noScale";Stage.align = "TL";var sw:Number = Stage.width;var sh:Number = Stage.height;var stageListener:Object = new Object();//舞台大小改变时,重置sw、shstageListener.onResize = function() {sw = Stage.width;sh = Stage.height;};Stage.addListener(stageListener);nEnterFrame. = function () {for (var i = 0; i<="">//如果到了边界,就反射if ((ballA[i]._xsw-ballA[i]._width/2 && ballA[i].dx>0)) {ballA[i].dx *= -1;}if ((ballA[i]._ysh-ballA[i]._height/2 && ballA[i].dy>0)) {ballA[i].dy *= -1;}//检测所有MC之间是否有碰撞,有就根据情况改变“增量”方向for (var j = i+1; j<="">if (myHitT est(ballA[i],ballA[j])) {//if (ballA[i].hitTest(ballA[j])) {mc12(ballA[i], ballA[j]);ballA[i]._x += ballA[i].dx;ballA[j]._x += ballA[j].dx;ballA[i]._y += ballA[i].dy;ballA[j]._y += ballA[j].dy;}}//移动一个“增量”ballA[i]._x += ballA[i].dx;ballA[i]._y += ballA[i].dy;updateAfterEvent();};//碰撞函数,根据两球碰撞方向和自身运动方向合成新的增量值function mc12(mc1:MovieClip, mc2:MovieClip) {//碰撞角var ang:Number = Math.atan2(mc2._y-mc1._y, mc2._x-mc1._x);//运动角var ang1:Number = Math.atan2(mc1.dy, mc1.dx);var ang2:Number = Math.atan2(mc2.dy, mc2.dx);//反射角var _ang1:Number = 2*ang-ang1-Math.PI;var _ang2:Number = 2*ang-ang2-Math.PI;//运动矢量var r1:Number=Math.sqrt(mc1.dx*mc1.dx+mc1.dy*mc1.dy);var r2:Number=Math.sqrt(mc2.dx*mc2.dx+mc2.dy*mc2.dy);//碰撞矢量var a1:Number = (mc1.dy/Math.sin(ang1))*Math.cos(ang-ang1);var a2:Number = (mc2.dy/Math.sin(ang2))*Math.cos(ang-ang2);//碰撞矢量合成var dx1:Number = a1*Math.cos(ang)+a2*Math.cos(ang);var dy1:Number = a1*Math.sin(ang)+a2*Math.sin(ang);//碰撞后的增量mc1.dx = r1*Math.cos(_ang1)+dx1;mc1.dy = r1*Math.sin(_ang1)+dy1;mc2.dx = r2*Math.cos(_ang2)+dx1;mc2.dy = r2*Math.sin(_ang2)+dy1;//碰撞侦测function myHitTest(mc1:MovieClip,mc2:MovieClip):Boolean{ var a:Number=Math.sqrt((mc1._x-mc2._x)*(mc1._x-mc2._x)+(mc1._y-mc2._y)*(mc1._y-mc2._y));if(a-5<=(mc1._width+mc2._width)/2){return true;}else{return false;}}带旋转效果:代码://把你舞台上的MC实例名放入数组,测试var ballA:Array = [ball1, ball2, ball3, ball4, ball5];//随机初始化每个MC的运动速度、方向、旋转for (var i = 0; i<="">ballA[i].dx = 5*rand1_1();ballA[i].dy = 5*rand1_1();ballA[i].dr = 0;//增加旋转属性ballA[i].N=i;//球编号}//随机产生1或-1function rand1_1():Number {return random(2) ? -1 : 1;}//舞台属性Stage.scaleMode = "noScale";Stage.align = "TL";var sw:Number = Stage.width;var sh:Number = Stage.height;var stageListener:Object = new Object();//舞台大小改变时,重置sw、shstageListener.onResize = function() {sw = Stage.width;sh = Stage.height;};Stage.addListener(stageListener);//------nEnterFrame. = function () {for (var i = 0; i<="">//如果到了边界,就反射if (ballA[i]._x<="">ballA[i].dx *= -1;ballA[i].dr += ballA[i].dy;}if (ballA[i]._x>sw-ballA[i]._width/2 && ballA[i].dx>0) { ballA[i].dx *= -1;ballA[i].dr += -ballA[i].dy;}if (ballA[i]._y<="">ballA[i].dy *= -1;ballA[i].dr += -ballA[i].dx;}if (ballA[i]._y>sh-ballA[i]._height/2 && ballA[i].dy>0) { ballA[i].dy *= -1;ballA[i].dr += ballA[i].dx;}//检测所有MC之间是否有碰撞,有就根据情况改变“增量”方向for (var j = i+1; j<="">if (myHitT est(ballA[i],ballA[j])) {//if (ballA[i].hitTest(ballA[j])) {mc12(ballA[i], ballA[j]);ballA[i]._x += ballA[i].dx;ballA[j]._x += ballA[j].dx;ballA[i]._y += ballA[i].dy;ballA[j]._y += ballA[j].dy;}}//移动一个“增量”ballA[i]._x += ballA[i].dx;ballA[i]._y += ballA[i].dy;ballA[i]._rotation += ballA[i].dr;ballA[i].dr -= ballA[i].dr*0.01;}};//碰撞函数,根据两球碰撞方向和自身运动方向合成新的增量值function mc12(mc1:MovieClip, mc2:MovieClip) {//碰撞角var ang:Number = Math.atan2(mc2._y-mc1._y, mc2._x-mc1._x);//运动角var ang1:Number = Math.atan2(mc1.dy, mc1.dx);var ang2:Number = Math.atan2(mc2.dy, mc2.dx);//反射角var _ang1:Number = 2*ang-ang1-Math.PI;var _ang2:Number = 2*ang-ang2-Math.PI;//运动矢量var r1:Number=Math.sqrt(mc1.dx*mc1.dx+mc1.dy*mc1.dy);var r2:Number=Math.sqrt(mc2.dx*mc2.dx+mc2.dy*mc2.dy);//碰撞矢量var a1:Number = (mc1.dy/Math.sin(ang1))*Math.cos(ang-ang1);var a2:Number = (mc2.dy/Math.sin(ang2))*Math.cos(ang-ang2);//碰撞矢量合成var dx1:Number = a1*Math.cos(ang)+a2*Math.cos(ang);var dy1:Number = a1*Math.sin(ang)+a2*Math.sin(ang);//旋转矢量,这里还有点问题,旋转方向有时不对,,电脑资料《Flash Actionscript教程:游戏中的碰撞...》(https://www.)。

ActionScript 编程实战 Flash ActionScript首选参数

ActionScript 编程实战  Flash ActionScript首选参数

ActionScript 编程实战Flash ActionScript首选参数Flash是目前应用最广泛的ActionScript开发环境。

在编写ActionScript代码时,可以通过Flash的首选参数对ActionScript代码的格式、关键字颜色等进行设置,以符合用户的习惯,提高代码编写的效率。

在Flash CS4中,与ActionScript相关的首选参数主要包括两类,即ActionScript参数和自动套用格式参数。

1.ActionScript参数ActionScript参数的作用是设置Flash CS4在编写ActionScript代码时显示代码的参数。

在Flash CS4中执行【编辑】|【首选参数】命令,即可打开名为【首选参数】对话框。

在【首选参数】对话框中选择左侧列表菜单中的“ActionScript”,即可打开ActionScript参数的选项面板,如图1-9所示。

图1-9 ActionScript参数在【ActionScript】参数对话框中,包含如下选项。

●自动缩进为便于阅读和理解程序的源代码,多数编程语言都会按照一定的格式进行书写。

例如,为嵌套关系的语句块进行句首缩进处理。

选中该选项后,Flash CS4可以自动在用户换行时将代码缩进。

●制表符大小设置新行中缩进的字符数●代码提示在输入代码时启用代码提示●延迟代码提示出现的延迟●字体在脚本窗口和as文件窗口中显示的字体和大小●样式在脚本窗口和as文件窗口中显示的字体样式●使用动态字体映射所选字体中呈现每个字符。

如不选该选项,则Flash会替换上一个包含必须字符的系列●打开/导入定义打开或导入ActionScript时使用的字符编码●保存/导出定义保存或导出ActionScript时使用的字符编码●重新加载修改的文件定义脚本文件在被修改、移动或删除时Flash CS4进行的操作,包括3个选项。

“总是”表示不显示警告,直接加载新文件;“从不”表示不显示警告,文件仍保持当前状态;“提示”表示显示出警告的对话框,由用户选择进行的操作。

Flash_ActionScript3.0_编程

Flash_ActionScript3.0_编程
这篇文章预算的演讲时间很长,所以读起来也会觉得较长,你可以分开来读。
还有,本文是关于FLASH5的AS的,毕竟FLASH4的AS已经淘汰。
第一章:由O开始
为了示范,MOOCK将会做一个多选题问答的动画来做为例子。
这个例子以4种不同版本的方法来实现。
对于用户来说,4种版本使用起来将没有区别,只是对于我们开发者来说,研究的就是如何改进这些FLASH代码的结构与组织。
作者和出处俱不详,版权归原作者所有
次给大家带来MOOCK在世界性FLASH大会:FF2K1大会上的演说,要说到Action的权威,当然要数MOOCK,他写的ASDG(一本书)是可以和FLASH自带的AS字典相提并论的宝贝。虽然他是这样一个高高手,但是他的这个演讲却是非常的浅显,如果你某处读起来觉得难,那也一定是chocobo翻译得不好。(有些地方实在是太浅,我受不了就改了 )
press 按下
rollOver 鼠标进入按钮的感应区
rollOut 鼠标离开按钮的感应区
现在很明确了:写在按钮上面的AS一定就是这种格式的:
on(事件){要执行的代码}
3、MC(电影剪辑)
如果你看懂了上面的内容,那么写在MC上面的AS和写在按钮上的大同小异。操作方法就是点选MC,然后打开AS面板。看个例子
首先,我们来了解一下路径,路径分两种:绝对路径和相对路径。做过html的朋友应该知道这个概念。但这里我还是要详细解释一下,我认为对路径的理解要深入,我初学的时候就是磕在路径上。
在讲路径之前,有必要先讲一下 .语法 : 举例说明,这里要表示房间里的桌子上的一本
书,用 .语法这么表示:
房间.桌子.书
3、控制语句流程的语法,如

FlashActionscript制作贪吃蛇简陋版-电脑资料

FlashActionscript制作贪吃蛇简陋版-电脑资料

FlashActionscript制作贪吃蛇简陋版-电脑资料全部代码如下:/************2005.5**************//*********贪吃蛇简陋版************//***********寒冰(胡乱编写)********/var s_x = 0;var s_y = 0;var dir = [[-1, 0], [0, -1], [1, 0], [0, 1]];//四个方向var _dir;var c_x = (Stage.width-256)/2;var c_y = (Stage.height-256)/2;var map;var speed;var level = 1;var child_num;var Child;var snake_arr;init();function init() {speed = 15;child_num = 1;snake_arr = [];DrawOutRound();//画外框DrawMap();//画地图SnakeRun();//蛇移动MakeWall();//创建障碍物MakeChild();//创建食物(后来变成蛇身)createTextField("info", getNextHighestDepth(), 30, 350, 400, 20);createTextField("status", getNextHighestDepth(), 320, 370, 100, 20);status.text = "状态:playing";info.text = "[用方向键控制方向,dead后请点鼠标重新开始]____寒冰制造";}function DrawBox(name, color, w, h) {//画方块var _b = createEmptyMovieClip(name, getNextHighestDepth());with (_b) {lineStyle(0);beginFill(color);lineTo(w, 0);lineTo(w, h);lineTo(0, h);endFill();}return _b;}function DrawOutRound() {DrawBox("outround", 0xffffff, 400, 400);}function DrawMap() {var _box = DrawBox("box", 0xffffff, 16, 16);_box._visible = false;map = [];for (var i = 0; i<16; i++) {map[i] = [];for (var j = 0; j<16; j++) {map[i][j] = 0;_box.duplicateMovieClip("_map"+i+j, getNextHighestDepth(), {_x:c_x+j*16, _y:c_y+i*16});}}//trace(map)}function MakeSnake() {var Snake = DrawBox("snake", 0x000000, 16, 16);snake_arr.push(snake);Snake.x = s_x;Snake.y = s_y;//map[Snake.y][Snake.x] = 1;Snake._x = c_x+s_x*16;Snake._y = c_y+s_y*16;return Snake;}function SnakeRun() {var S = MakeSnake();var i = 0;_dir = dir[3];SnakeControl();S.onEnterFrame. = function() {if (++i>100/speed) {ChildRun();i = 0;if (map[this.y+_dir[1]][this.x+_dir[0]] == 0) {} else if (map[this.y+_dir[1]][this.x+_dir[0]] == 8) { speed++;map[this.y+_dir[1]][this.x+_dir[0]] == 0; snake.swapDepths(getNextHighestDepth()); Child._name = Child._name.substr(1);snake_arr.push(Child);MakeChild();} else {status.text = "状态:over";delete this.onEnterFrame;return;}this.x += _dir[0];this.y += _dir[1];this._x = c_x+16*this.x;this._y = c_y+16*this.y;}};//trace(S);}function SnakeControl() {var bj = {};obj.onKeyDown = function() {var key = Key.getCode();switch (key) {case 37 :_dir = dir[0];break;case 38 :_dir = dir[1];break;case 39 :_dir = dir[2];break;case 40 :_dir = dir[3];}};Key.addListener(obj);}function RndArr() {//随机乱数,为了取得随机的障碍物的位置,不过这里用随机是为了偷懒,应该固定位置的.var arr = [];for (var i = 1; i<256; i++) {arr[i-1] = i;}arr.sort(function () {return random(2) ? 1 : -1;});return arr;}function MakeChild() {var rgb = 0x0000ff;Child = DrawBox("_child"+child_num, rgb, 16, 16);Child._alpha = 0;Child.onEnterFrame. = function() {if ((this._alpha += 5)>100) {delete this.onEnterFrame;}};do {var x = random(16);var y = random(16);} while (map[y][x] != 0 or (x == 0 and y == 0));Child.createTextField("txt", Child.getNextHighestDepth(), 0, 0, 16, 16);//食物上的数字Child.txt.textColor = "0xffffff";Child.txt.text = child_num;map[y][x] = 8;Child._x = c_x+x*16;Child._y = c_y+y*16;child_num++;}function MakeWall() {var _arr = RndArr();for (var i = 0; i<="">var x = _arr[i]%16;var y = int(_arr[i]/16);map[y][x] = 1;var Wall = DrawBox("wall"+i, 0xff0000, 16, 16);Wall._x = c_x+x*16;Wall._y = c_y+y*16;}}function ChildRun() {for (var j in snake_arr) {map[snake_arr[j].y][snake_arr[j].x] = 0;}for (var i = child_num; i>0; i--) {var last_child = this["child"+(i-1)];if (last_child == child0) {last_child = snake;}this["child"+i].x = last_child.x;this["child"+i].y = last_child.y;map[this["child"+i].y][this["child"+i].x] = 1;this["child"+i]._x = c_x+this["child"+i].x*16;this["child"+i]._y = c_y+this["child"+i].y*16;}}nMouseDown = function () {// 鼠标点击进行刷新,重新开始for (var i in this) {if (this[i].__proto__ == MovieClip.prototype) {this[i].removeMovieClip();} else if (this[i].__proto__ == TextField.prototype) {this[i].removeTextField();}}init();}//晚上边玩边弄的,居然写了这么多.bug多多哦,只是个大概样子,唬唬人的: )。

动画设计与制作——Flash CS6 08 ActionScript 3.0编程基础

动画设计与制作——Flash CS6 08 ActionScript 3.0编程基础
ActionScript 3.0是最新且最具创新性的ActionScript版本,它是针对 Adobe Flash Player运行环境的编程语言,可以实现程序交互、数据 处理以及其他许多功能。
ActionScript 3.0相比于早期的ActionScript版本具有以下特点。
使用全新的字节码指令集,并使用全新的AVM2虚拟机选择程序代 码,显著提高性能,其代码的选择速度可以比旧式ActionScript代 码快10倍。
具有更为先进的编译器代码库,严格遵循ECMAScript(ECMA 262)标准,相对于早期的编译器版本,可选择更深入的优化。
使用面向对象的编程思想,可最大限度地重用已有代码,方便创建 拥有大型数据集和高度复杂的应用程序。
ActionScript 3.0的代码只能写在关键帧上或由外部调入,不能写 在元件上。
第8章 ActionScript 3.0编程基础
了解ActionScript 3.0的基本语法。 掌握代码的书写位置及方法。 掌握常用内置类的使用方法。 掌握使用ActionScript 3.0控制时间轴和元件的方法。
西南科技大学毕业论文答辩
8.1认识ActionScript 3.0编程
一、ActionScript 3.0简介
index = index % n; //“%”表示取余数
若要让index在0~n-1从大到小循环变化,则使用如下算法。
index += n-1;
//“+=”是index = index + (n-1)的缩写形式
index = index % n;
西南科技大学毕业论文答辩
操作一 【重点案例】──制作“精美时钟”
西南科技大学毕业论文答辩
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

FLASH中actionscript代码----调用外部文件详解作者: 网友添加来源: 互联网发布日期:2005-11-24 点击次数: 3865 FLASH调用外部文件详解Flash加载外部文件Flash可以通过帧、按扭、影片剪辑来调用外部文件。

调用的外部文件包括:外部文本文件、外部程序文件、外部*.swf文图片文件、外部音乐文件、外部脚本文件。

一.调用外部文本文件:(文本文件开头要以flash中的动态文本框的变量名开头,如msg=".........."这样的形式,要和编辑的Flash文件放在同一目录下)1.用工具箱中的文本工具,选择动态文本,给动态文本一个变量名,如:msg,在编辑区拖出一个文本框2.制作两个按扭(一个调用,一个清除)拖放到场景中。

3.调用按扭上添加AS:on(release){//松开鼠标后执行下面的代码;loadVariables("msg.txt",msg);//调用和你编辑的Flash处于同一目录下的msg.txt文本文件到动态文本msg中;eCodepage=true;//使外部文件的中文字符能够正确显示;}4.清除按扭上的AS:on(release){//松开鼠标后清楚动态文本框中的内容;msg="";}5.Ctrl+Enter测试.当然代码也可以写在帧上:(调用按扭的实例名是bt1,清除按扭的实例名是bt2)在第一帧上加如下代码:stop();_root.bt1.onRelease=function(){loadVariables("msg.txt",msg);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中;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,向下按扭上的实例n)在第一帧上加如下代码:_root.bt1.onRelease=function(){//松开鼠标后执行下面的代码;loadVariables("msg1.txt",msg);//调用msg1.txt文本文件到动态文本框msg中;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,则会提示没0.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对象中,并且按流的方式播放(参数为时,是以装载完后播放);}清除按扭上的AS:on(release){mySound.stop();//当按下清除按扭后,停止声音的播放}Ctrl+Enter测试。

加载外部图片如果你的动画中有很多的图片.如果都放到一个SWF文件.可能打开或是下载会很慢.这样就影响了观看效果及速度,那么你载入外部图片的方法,只要把图片按名称放到你网上的一个目录里(和你的SWF文件同一个目录),那么就可以解决这个问题前十祯你做一个载入LOADING.从第十一祯开始新建一个图层.起名为AS层在AS图层的第十一祯加入一个关键祯,然后打开动作面板,加入以下ASi = 0;//初始化变量loadMovie ("p040.jpg", "pic");//在播放原始 SWF 文件的同时将p040.jpg 文件//加载到 Flash Player 中的叫PIC的这个影片剪辑中。

上面的语句是实现了加载一张.我们要它加载多张.所以要用到IF语句.在AS层的第六十祯处加入一个关键祯,打开动作面板S语句:i++;//变量i递增if (i >= 21) {//当变量i递增到>=21时.这里的21是因为我准备了二十一张要加载的图.如果你加载十张.那就把这里为10就可以了i = 0;//则变量为0,即重新加载}loadMovie (("p04" + i) + ".jpg", "pic");//如果不是.则继续加载.这里的p04+i就等p04i.也就是说i是几.这里就比如i为12,则p04+i就等于p0412gotoAndPlay (12);//跳转到第十二祯所以.在这里给图片起文件名时.就要按照这个原则来起的.准备好的图片要和你的主调用SWF文件入在同一个目录下,或者加载时用绝对路径,那就要改成"/p04"' target="_blank" >/p04";+i+".jpg"图片的大小最好是事先调整好的.在你做好的PIC这个加载用的MC里.它的位置是放在XY坐标为0的位置,加载进来图是以左上角为准的,也就是说加载进来图的左上角与加载用的MC的左上角是重合的--------------loadMovie("图片名",newname);以上语法以下用法on(release){loadMovie("pic.jpg", "mc");mc._x=50;mc._y=50mc._xscale=40;mc._yscale=40}--------------------------------------------------------------------------------加载外部文本文件的3种方法不管那样方法,文本文件要和主文件在同一目录下,再就是在这儿的文本文件名为 b.txt*第一种方法txt=1、创建一个文本框,给此文本框一个变量名txt;2、文本格式为:动态;3、选:多行输入4、在第一帧上增加脚本语言。

相关文档
最新文档