Flash ActionScript脚本代码编写
flash代码教程
flash代码教程Flash代码教程 (500字)Flash 是一种广泛使用的多媒体平台,它能够创建动画、游戏和交互式应用程序。
Flash 使用一种称为 ActionScript 的编程语言来实现各种功能。
在本篇教程中,我将向您介绍 Flash 的基本概念,并分享一些编写简单代码的技巧。
第一步是了解 Flash 的基本概念。
Flash 文件是.swf 格式的,它可以在支持 Flash Player 的浏览器中运行。
Flash 文件可以包含图像,动画,声音和其他媒体元素,它们可以与用户进行交互。
ActionScript 是 Flash 的编程语言,它允许您在 Flash 文件中添加逻辑和交互性。
要开始编写 Flash 代码,您需要下载 Adobe Animate 或其他Flash 编辑器。
安装后,打开编辑器并创建一个新的 Flash 文件。
现在我们可以开始编写代码了。
首先,让我们从一个简单的例子开始。
我们将创建一个基本的动画,让一个图像在屏幕上移动。
首先,将图像导入到 Flash 文件中,然后给它一个实例名称 (例如 "myImage")。
现在我们可以编写代码了。
在 Flash 编辑器中,您可以通过单击 "窗口" 菜单,然后选择 "动作" 或按 F9 键打开动作面板。
在动作面板中,您可以编写ActionScript 代码。
首先,我们需要为图像创建一个运动效果。
我们可以使用"Tween" 类来实现这一点。
导入 Tween 类:importfl.transitions.Tween;。
然后,创建一个新的 Tween 对象并将其应用于 myImage。
var myTween:Tween = new Tween(myImage, "x",Strong.easeInOut, 0, 200, 2, true);上述代码通过 Tweens 类创建了一个名为 myTween 的 Tween 对象。
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 影片发布设置作用:执行【文件】|【发布预览】和【文件】|【发布】命令,预览和发布影片或应用程序。
说明:在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解块启用该选项可有效减少低品质图像的失真程度●音频流单击其右侧的【设置】按钮,可对发布影片中的音频质量进行设置。
(关于音频设置,请参考本章其他小节)●音频事件单击其右侧的【设置】按钮,可对发布影片中事件触发的声音质量进行设置。
FlashActionScript3.0案例
Flash ActionScript3.0案例案例1:计算机打字效果步骤1 打开本案例的素材文件“素材.fla”,库里面有一张背景图,如图1所示。
图1步骤2 将图层1重命名为“背景层”,并将图片背景图拖曳到舞台上,如图2所示。
图2步骤3 新建一个图层,命名为“文本”,并选择工具栏内的“文本工具”,在属性面板中设置“文本工具”的属性,如图3所示。
图3步骤4 使用“文本工具”在舞台上框选出一个文本区域,其大小正好覆盖显示器的内部,如图4所示。
图4步骤5 单击属性栏内“字符”选项卡内的“嵌入”按钮,在弹出的对话框内将以下文字输入到如图5所示的位置,注意最后还添加一个符号“|”。
贝尔纳是法国著名的作家,一生创作了大量的小说和剧本,在法国影剧史上具重要的地位。
有一次,法国一家报纸进行了一次有奖智力竞赛,其中这样一个题目:“如果法国最大的博物馆卢浮宫失火,情况只允许抢救出一幅画,你会抢哪一幅?”结果,在该报纸收到的成千上万回答中,贝尔纳以最佳答案获得该题的奖金。
他的答案是:“我抢离出口最近的那幅画。
”图5步骤6 单击“确定”按钮后,使用“选择工具”选中该文本框,并在属性面板中将实例名称修改为txt,同时修改字符大小为14.0点,段落里行为“多行”,如图6所示。
图6步骤7 再次新建一个图层,并命名为“代码层”,如图7所示。
图7步骤8 单击“代码层”的第1帧,并按快捷键F9打开动作面板,在动作面板里输入以下的脚本,如图8所示。
import flash.utils.Timer;import flash.events.TimerEvent;//导入外部类//需要展示的文字var word:String = "贝尔纳是法国著名的作家,一生创作了大量的小说和剧本,在法国影剧史上具重要的地位。
有一次,法国一家报纸进行了一次有奖智力竞赛,其中有这样一个题目:“如果法国最大的博物馆卢浮宫失火了,情况只允许抢救出一幅画,你会抢哪一幅?”结果,在该报收到的成千上万回答中,贝尔纳以最佳答案获得该题的奖金。
2048源代码Flash ActionScript2.0版本,附使用方法
var generateNumber=generateNumberArray[Math.floor(generateNumberArray.length*Math.random())];
for(var i=0;i<=matrix.length-1;i++){
if(matrix[i]==0){
for(var Βιβλιοθήκη =0;j<=order-1;j++){
matrix[i*order+j]=heapedRow[j];
}
}
if(!compare(copied)){
generateRandomTile();
}
}
public function moveToRight(){
type为可选参数,取值范围为1-15之间的正整数,决定2048棋子的基数,默认为1。
index++;
}
}
return reheaped;
}
private function copy():Array{
var copyArr=[];
for(var i=0;i<=matrix.length-1;i++){
copyArr[i]=matrix[i];
score=0;
generateRandomTile();
generateRandomTile();
}
public function generateRandomTile(){
var countZero=0;
for(var i=0;i<=matrix.length-1;i++){
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 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编程
实例: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代码----调用外部文件详解作者: 网友添加来源: 互联网发布日期: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测试。
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 ActionScript 3.0编程技术》课程简明教程
《Flash ActionScript 3.0编程技术》课程简明教程浙江外国语学院石其乐模块1 ActionScript 3.0概述1.1 Adobe Flash CS5写入ActionScript 3.0代码的方法Adobe Flash CS5 两种写入ActionScript 3.0代码的方法:在时间轴的关键帧加入ActionScript代码(动作面板介绍)trace("Welcome you");在外部写出一个单独的ActionScript类文件,然后绑定或者导入到fla文件中(类的3种用法:和fla文件绑定、和Flash中的库元件绑定、使用import关键字导入类)和fla文件绑定(目的是为了AS代码和Flash设计完全剥离)(脚本窗口介绍)实例package {import flash.display.Spritepublic class Welcome extends Sprite {public function Welcome() {trace("Welcome You");}}}模块2 ActionScript 3.0 编程语言基础2.1 AS3.0语法2.1.1 点语法1)可以采用对象后面跟点运算符的属性名称(方法)名称来引用对象的属性(方法)。
2)可以采用点运算符表示包路径。
3)可以使用点运算符描述显示对象的路径实例package com.lzxt.display{import flash.display.DisplayObjectContainer;import flash.display.Sprite;import flash.text.TextField;public class AddTextSprite extends Sprite {public function AddTextSprite() {//创建空容器var sp:Sprite=new Sprite();sp.x=50;sp.y=50;addChild(sp);// 创建文本对象var mytext:TextField=new TextField();mytext.text="这是一个位于容器中的显示文本";mytext.width=200;//显示对象sp.addChild(mytext);}}}2.1.2 标点符号使用分号(;)\逗号(,)\冒号(:)\小括号(())\中括号([])\大括号({})实例1var date:Date=new Date();var hh:int=date.getHours();if (( hh >= 0 ) && (hh <= 4 )) {trace("深夜了,注意身体,该休息了!");} else if (( hh >= 4 ) && (hh < 7)) {trace("清晨好,这麽早就上网呀?!");} else if (( hh >= 7 ) && (hh < 12)) {trace("早上好,一天之际在于晨,又是美好的一天!");} else if (( hh >= 12) && (hh <= 13)) {trace("该吃午饭啦!有什麽好吃的?");} else if (( hh >= 13) && (hh <= 17)) {trace("外面的天气很热吧?!心静自然凉!");} else if (( hh >= 17) && (hh <= 18)) {trace("太阳落山了!快看看夕阳吧!");} else if ((hh >= 18) && (hh <= 19)) {trace("吃过晚饭了吗?");} else if ((hh >= 19) && (hh <= 23)) {trace("一天过的可真快!今天过的好吗?");}实例1var arr:Array=[1,2,3];trace(arr[0]);2.1.3 注释单行注释多行注释实例/* 单击以搜寻提示点(需要FLVPlayback 组件)单击此指定的元件实例会在指定的FLVPlayback 组件实例中搜寻视频的提示点。
最简单的flash脚本动画编程
详细的flash脚本动画编程摘要:本文通过一个简单的例子来介绍flash脚本动画编程的详细步骤。
第一步,启动Adobe Flash CS4, 选择“新建”选项中的“Flash 文件(Action Script 2.0)”第二步,在右边工具栏中点击“矩形工具”画图然后选择“椭圆工具”点击“填充颜色”按住Shift键在舞台上画一个红色的小球,然后再把鼠标点击“选择工具”右键点击红色小球,选择“转换为元件”选择“影片剪辑”,名称改为“rb”点击确定,然后在“属性”那把“实例名称”填上“rb_mc”这样就建好一个实例名称为"rb_mc"的“影片剪辑”元件了。
同样的步骤,建一个绿色小球,实例名称为"gb_mc"的“影片剪辑”元件。
然后,点击左下角的“时间轴”,并右键选中第一帧中的“动作”进入脚本代码编程:在脚本编程框中输入:var R,w0,w1,t,dt:Number;R=50;//圆周运动的半径w0=2;//红色小球圆周运动的角速度w1=10;//绿色小球圆周运动的角速度t=0;dt=0.02;//时间间隔/*圆周运动:x=Rcos(w*t),y=Rsin(w*t),在这里用微分递推公式:x_{i+1}=x_i+dx,y_{i+1}=y_i+dy,dx=-R*w*sin(w*t)*dt,dy=R*w*cos(w*t)*dt也就是:x+=-R*w*sin(w*t)*dt,y+=R*w*cos(w*t)*dt*///小球运动程序function moveMe(){//红色小球的运动rb_mc._x+=-R*w0*Math.sin(w0*t)*dt;rb_mc._y+=R*w0*Math.cos(w0*t)*dt;//绿色小球的运动gb_mc._x+=-R*w1*Math.sin(w1*t)*dt;gb_mc._y+=R*w1*Math.cos(w1*t)*dt;t+=dt;}setInterval(moveMe,50);//每50毫秒刷新一次坐标//输入完以后按Ctr+Enter运行。
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教程:游戏中的碰撞...-电脑资料教程简单碰撞下面是代码://把你舞台上的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.)。
flash ActionScript 3常用代码
{
trace("鼠标离开");
}
/* Key Pressed事件
按任一键盘键时,执行以下定义的函数fl_KeyboardDownHandler。
*/
stage.addEventListener(KeyboardEvent.KEY_DOWN, fl_KeyboardDownHandler);
//===========播放停止常用类===========================
/*播放(停止)影片剪辑
在舞台上播放(停止)指定的影片剪辑。
说明:
1.将此代码用于当前停止的影片剪辑。
*/
mc.play();//播放
mc.stop();//停止
mc.gotoAndPlay(20);//跳转到mc的第20帧开始播放
{
fl_ProLoader = newProLoader();
fl_ProLoader.load(newURLRequest("/flash/images/image1.jpg"));
addChild(fl_ProLoader);
}
//===============loading=========
percentage =Math.round( percentage * 100 );//转换为整数
loadingTxt.text=percentage+"%";
}
functionloadComplete (event:Event):void
{
this.gotoAndStop(2);
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_编程
还有,本文是关于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制作贪吃蛇简陋版-电脑资料全部代码如下:/************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多多哦,只是个大概样子,唬唬人的: )。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
FlashActionScript脚本代码编写.txt我的优点是:
我很帅;但是我的缺点是:
我帅的不明显。
什么是幸福?幸福就是猫吃鱼,狗吃肉,奥特曼打小怪兽!令堂可是令尊表姐?我是胖人,不是粗人。
Flash ActionScript脚本代码编写好习惯2007-07-30 09:29每个人玩Flash一段时间后,都会形成自己的一套FlashActionScript代码编写习惯。
好的代码编写习惯可以尽可能避免低级失误和不必要的麻烦,从而加速开发进程,提高开发质量。
火山现在虽然只是业余爱好者,但两年的积累,再加上“火山之家”的开发,也自然而然的形成了火山特色的开发习惯。
这些习惯从某种程度反映了我现在的开发水平,所以它基本上都是围绕着小型、快捷、面向过程的开发模式形成的,很多地方还很幼稚。
不过以后随着我能力的不断提高,以及对面向对象编程思想的学习,它肯定还要不断的更新和完善。
库文件夹分类习惯:
·声音、图片各自放到独立的文件夹。
·MC则根据栏目进行分类到不同的文件夹。
·一般不用图形元件。
时间轴管理习惯
·最上层为AS层,如果AS层超过三层,则建立专门的AS图层文件夹。
多层AS层需要注意代码执行顺序。
·第二层为标签层。
·主场景其它图层按栏目进行文件夹分类,但一个MC内一般仅为一个栏目,不用分类。
·相同性质而且相互影响不大的元件放一层,其它的独立分层,并按视觉效果进行上下分层。
·loading、过渡动画、功能页面分在不同的场景。
元件命名习惯
·xx元件的命名:
采用中文命名,后边添加特定元件的后缀,比如我有一个“导航”的元件,按钮则命名为:
“导航BTN”,影片剪辑则命名为:
“导航MC”。
声音和图片则直接使用“导航”命名。
·命名的三步统一性:
即元件在库中的名字,在场景中的实例名,以及所在层的名字尽量保持统一。
比如一个元件在库中的名字为:
“导航MC“,则它在场景中的实例名将为“daohang_mc”,它所在的层名将为“导航”。
这样在元件非常多,代码编写量非常大的时候,可以有效的节省命名和查找时间,同时避免引用错误。
·文本域命名:
如果一个MC中仅有一个动态文本域,则统一命名为:
“wenben_txt”,其变量名为“wenben_var”。
如果有两个以上动态文本域,则根据其功能进行命名。
架构习惯
·三层分离:
主场景数据层,动画层,代码功能层进行分离。
由于数据加载完成时,会导致短暂的动画不流畅,所以我一般在loading场景中把数据一起加载完成,然后进入动画场景。
大量的时间轴动画又会导致项目结构混乱,所以我一般又会把动画也处理成独立场景,将动画最后一贞复制,然后建立新的功能场景并粘贴,所有的核心代码都集中在功能场景中。
·MC结构:
由于每个MC基本又相当一个独立的小SWF,所以它的结构也尽量遵从“三层分离”的思想。
·MCxx:
每个MC都保持两贞。
尽管大部分情况下,都可以用一贞完成任务,但我还是会专门留一贞,为可能的贞数据刷新留有余地。
·元件嵌套结构一般不超过三层,迫不得已的情况下,也要保证代码不写在三层以下的元件上。
·外部调用SWF全部定义:
_lockroot = true。
·外部调用的SWF中绝不使用_level0,除非特别需要。
向过程的结构化AS代码编写习惯
一、代码分布所有代码均写在时间轴上,一般都在第一贞,元件上绝不写代码。
主场景上的代码负责对整个系统的初始设置,各MC时间轴上的代码各成一体。
二、代码结构按代码编辑器中从上到下的顺序。
1系统初始化:
①界面初始化:
包括编码设置,舞台设置,元件可见性,可用性等等初始设置。
②变量初始化:
时间轴或者全局变量初始化。
③数组初始化:
初始需要的数组,并利用循环进行赋值。
④对象初始化:
初始需要的所有对象,并注册侦听器。
2、代码逻辑结构:
这里是整个代码的逻辑结构,一般通过一系列的函数调用使各种功能有机结合。
3、功能块儿:
一般按逻辑结构中的顺序定义各个功能块儿,并封装到函数中。
三、命名习惯全部采用中文拼音全拼。
1、变量命名:
使用“var”进行时间轴变量声明,并且采用中文全拼命名,示例:
varliuyan="";
2、数组和对象命名:
采用全拼加对应的后缀,示例:
var shuzu_array=new Array(); varliuyan_lv=new LoadVars();
3、函数局域变量命名:
使用全拼加“fc”后缀,示例:
function fanye(anniu_fc);
4、外部通信变量命名:
外部传递给FLASH的变量,添加对应的后缀:
示例:
txt传递给FLASH的变量用:
liuyan_txt,ASP则为:
liuyan_asp。
FLASH传递给外部的变量加“flash”后缀,示例:
yeshu_flash。
四、注释习惯
1、注释的位置:
我一般习惯把注释写在代码前面。
也就是先注释再代码。
2、注释频率:
基本上是逐行注释,最少也是逐功能注释。
3、注释结构:
模块级代码用"==============="分隔。
功能级代码用"——————"分隔。
一般注释直接用"//"。
下面是经典会员noahgenius补充的一些资料
2、方法的命名变量的命名楼主都说了,我想谈谈函数的命名。
推荐“骆驼”试命名法,从语法上来说是动宾结构,比如getMovieClipName(),四个词,第一个是动词,除第一个词外首字母大写,这样的命名比较好说明函数的用途。
3、提高类的颗粒度,类功能单一化多写几个类没有坏处,类的功能尽量单一,不要让一个类做各种各样不相干的事,这样后期的修改会非常麻烦。
4、基于接口的OOP编程java要求为每个类都配个interface,其实不用那么夸张。
但是这个思路值得借鉴,让接口来代替具体的实现类跟别的类交互,如果以后有扩展,只需要再写个实现类,不用修改交互部分的代码了。
5、设计比编码重要一上来就写代码绝对是不行的。
先好好规划自己的系统,从大的流程到细小的逻辑实现,尽量的做到心中有数。
这样才不会在做的过程中感觉混乱。