多语言展示
当前在线:453今日阅读:195今日分享:14

AS3基础教程-第67课-文档类(终)

抱歉,因为是边想边写,而且对于外部类编写的方式我还比较陌生,故此:文档类章节的数目没有做好统筹布局,从而导致了文章标题的混乱,造成的不便请谅解。本节课是文档类的最后一课。
工具/原料
1

flashCS6

2

JPEXS Free Flash Decompiler

方法/步骤
1

打开flashCS6软件,新建一个flash文档,直接保存。因为外部类的写法所致,每一个fla文件都要配套一个或多个as文件,故此,外部类的写法必须先在本地硬盘的某一位置处建立一个文件夹,然后将所有的文件都放入这个文件夹内。故此,请大家新建一个名为67的文件夹,然后将新建的flash文档保存在这个文件夹内,文件名为67.fla

2

在flashCS6内,用选择工具单击舞台空白处,在属性面板内,“类”那里输入外部类的名字,然后点击右边的小笔图标,如下图所示。会弹出一个对话框,直接点击“确定”即可

3

再次点击一下上步中的小笔,就会打开一个纯代码编辑的窗口,就是前面两节内我们接触的文档类了。此时直接保存文件,如下图,flashCS6已经帮我们设定好文件名,我们直接保存即可。因为文档类的名字和as的文件名必须一模一样,故此这里设定好的文件名请不要修改(包括字母的大小写)

4

操作后,在本地硬盘内的67文件夹内,就有了两个如下图所示的文件。

5

上面的步骤,是一种非常方便的创建文档类的方式,如下图,是flashCS6自动书写的文档类代码。import语句、extends语句、构造函数体 这三个最基本、最重要的代码都已经帮我们写好。我们只需在构造函数内书写所需的代码即可

6

我们仍然是添加一行trace语句,用于输出一段文字吧,如下图所示。新手要特别注意:每当我们的as文件有了改变,在测试影片之前,都必须要保存一下as文件【fla文件不用】,如下图箭头所指,Hi.as的后面有一个* 表示as文件没有保存!请一定先保存一下,再测试影片,重要重要!

7

上面的代码很简单,就是一个输出字符的命令。在时间轴上直接写的话,只写步骤6截图内代码中的第10行即可。但是,外部类的写法,却要在这行核心代码的外部,添加好多的“累赘”。这些“累赘”虽然麻烦,但是必须有,否则flash的编译器将无法理解你的代码要作用的对象是啥。而且,这些“累赘”的写法有着严格的规定【上一节课已经介绍过,不再赘述】。

8

这是“面向对象”编程的特点,如果项目超简单,使用这种方式编程,将很费劲,此时在时间轴上直接写代码更加简明扼要。项目越大、结构越复杂,“面向对象”编程的优势就越大。

9

其实,AS3在本质上就是“面向对象”的!当我们在时间轴上直接写代码时,flash在编译阶段【测试影片的时候】,会自动的将代码给翻译成文档类的形式!我们可以使用swf的反编译软件来看到代码。下面详述之。

10

新建一个AS3的flash文档,直接保存,名为temp.fla然后在这个flash的时间轴上直接写代码,测试影片,会自动生成temp.swf文件

11

使用任意一款可以反编译swf文件的软件,来解析这个temp.swf文件的代码。我使用的是JPEXS Free Flash Decompiler,这是一款完全免费且开源的反编译软件【要求你的电脑中必须安装有java运行环境。如果机器上没有安装,软件运行时会自动打开java官网。遗憾的是,java官网的下载链接无法正常使用,请大家到其它地方手动下载吧】

12

我们打开这个JPEXS Free Flash Decompiler软件,然后如下图所示,打开我们的temp.swf文件

13

如下图所示,依次展开各项目,就可以看到里面的代码了。我们在时间轴上写的代码明明只有一行,反编译的结果却出来这么一大堆!其实,这才是AS3的真正模样!我们虽然可以在时间轴上直接写代码,但其实AS3在运作的时候,从本质上只支持这种文档类的写法!只不过在编译阶段,flashCS6自动的、悄悄地帮我们改写成了文档类的写法而已!

14

看步骤13内的截图,flashCS6自动改写的文档类,类名是MainTimeline,表示的是主时间轴。代码中另有一块内容,我们暂不涉及。JPEXS Free Flash Decompiler软件可以将swf文件反编译为fla文件,如下图所示操作即可。为防止与之前的文件重名,我们将文件名修改一下,直接保存。

15

用flashCS6打开这个反编译所得的fla文件,发现时间轴上有代码,请删掉它【否则测试影片的时候会报错】。然后看一下其文档类的名字,如下图所示:

16

如下图,点击“类”右边的小手,就可以出现文档类的代码了:

注意事项
1

源文件已共享,文件名是67.fla

2

所谓反编译,是与编译完全相反的过程。编译是fla→swf,反编译就是swf→fla

推荐信息