早期版本的ActionScript代码可以写在帧、按钮、影片剪辑、as文件等位置,而Flash AS3.0代码的位置发生了重大的改变,只能写在帧及as文件中。
虽然Flash AS3.0支持把代码写在时间轴中,但在实际应用中,如果把很多的代码放在时间轴中,会导致代码很难管理。或者说,用类来组织大量的代码更为合适,因为类代码都是放在as文件中的。
除了把代码放在时间轴上,还可以把代码放在外部文件中,比如,放在服务器的txt文件中,然后把这些外部数据加载到fla文件里。
外部文件代码
以往都是在时间轴上写代码,编写的程序一般只有多层一帧的特点,其中最顶层专门来放置代码。在这种模式中,假如程序比较大,需要几百行代码来实现,甚至更多,代码全部放在同一个地方,光是查看就很不方便,需要打开Flash软件,然后找到帧及动作面板,最后进行翻页查看代码。
实际上,对于一个代码较多的程序,可以把代码分成几个大的功能模块,每个模块代码放在一个as文件中,这样不管是查看还是进行其他的管理都较方便。
除了使用Flash IDE ,可用记事本来编写代码,这样速度更快,写完代码后把扩展名改为as可以达到同样的效果,如果不是很熟悉编程,还是使用Flash自带的编辑器编写为好,可以使用代码提示。
下面通过一个例子来了解如何编写as文件中的代码,如何把as文件中的代码导入到时间轴中。
例:(代码与美工的分离)
1、打开Flash,选择【新建】命令,在弹出的【新建文档】对话框中选 ActionScript 文件,单击确定按钮,新建一个as文件,保存名为“shift.as”。
2、在as文件中输入代码,代码的编写方法与在时间轴上是一样的:
this.addEventListener(Event.ENTER_FRAME , onEnterframe)
var shift : Number = 0
var startX = 200
var startY = 200
var r = 60
graphics.lineStyle(0)
graphics.moveTo(startX + r , startY)
function onEnterframe(evt: Event) {
graphics.lineTo(startX + r * Math.cos(shift),startY + r * Math.sin(shift))
ball.x = startX + r * Math.cos(shift)
ball.y = startY + r * Math.sin(shift)
shift += 15
}
3、新建一个Flash文件,保存名为“Sample”,保存在与“shift.as”,文件相同的目录中,
4、按Ctrl+F8 创建一个影片剪辑元件,选椭圆工具,笔触无,填充色红色,画一个小球。
5、返回场景1,把库中的小球拖到舞台上,在属性面板实例名称中,输入ball。
6、单击图层1,的第一帧,打开动作面板,输入代码:
include "shift.as"
提示:导入命令在AS3.0 中是 include,而在AS3.0 以前的版本是 #include。
7、按Ctrl+Enter组合键测试影片。
导入as文件中的代码用 include 命令,如果as文件与fla文件不在同一目录,则应带上目录名。例如,
如果as 文件在fla 文件的上一级目录,可用“. . /”引用上一级目录,代码应为:include ". . /shift.as",如果
as文件在fla文件的子一级目录如test中,代码应为: include "test/shift.as" 。