首页蓝耳朵|小小蓝耳朵广州图书馆外文室英语儿童读物资源介绍网佛教青年之友旧版收集永硕E盘Phonics Short Vowels Game 
ActionScript 3.0 脚本写在哪里?
所属栏目:Flash  时间:2011-11-09 21:48  作者:狼子
从2.0升上来,最大的问题是脚本写在哪里?第一次知道as文件,有《ActionScript 2.0 迁移》(http://livedocs.adobe.com/flash/9.0_cn/ActionScriptLangRefV3/migration.html),写代码应该不难,问题是脚本代码写在哪里?

写在as文件中,这是肯定的,就是,怎么调用?从C#的using namespace转到flash的import class,很容易,所以第1个想法是,添加import

1.添加import的方法,这是笨办法,到现在为止,我想到的好处只有从C#转过来一下就想的到,不用翻书,不用查资料
 在fla文件里,新建一个图层用来写脚本,在第一帧中写:
import GameClass;
var gc = new GameClass(MovieClip(this));

 在GameClass.as文件中,给类添加类成员变量,给构造函数添加参数:
public var myRoot:MovieClip;
public function GameClass(iniMyRoot:MovieClip) {
myRoot = iniMyRoot;
}

通过这样的设置后,在as文件里可以随便引用myRoot变量,这个变量是指向影片的root的

之所以要这样子,是因为如果我不把root从fla当参数传递进as中,我就不能直接在as里调用_root,也不能直接调用stage

如果在fla文件里有什么元件是要在as里调用的,也可以像root一样子用参数的形式传递到as的类属性里的

这种方法。。。没什么好说了,看第2种方法,就知道这个方法傻在哪里了


2.在fla文件里指定“文档类”
 在fla文件中,不选中任何元素时,属性面板发布一栏下有一个“类”,这里定义的就是文档类,在这里设置了文档类后,发布的swf文件会自动调用这个指定的类

 像上面那个例子,可以直接指定文档类是:GameClass

 指定这个文档类后,在GameClass.as里,可以直接调用fla文件中的任意给定名称的元件、任意设置了AS链接的元件(转换为元件时勾选“为ActionScript导出”和“在第1帧中导出”并设置了类名的元件)

 还有就是,指定文档类后,可以直接在文档类里调用stage


第1种办法够笨了没?

ActionScript 3.0 脚本写在哪里?写在as文件里,然后在fla文件里设置文档类,这样子做就可以全部扔掉2.0里的帧代码了

就是,如果你的类文件有一堆,不只是一个,fla文件的文档类是只能指定一个类名的,所以第1种方法可以用在文档类中,用来导入别的类

比如,文件结构如下:
ballGame.fla
GameClass.as
BallClass.as

如果在ballGame.fla里设置了文档类是GameClass,就可以用import调用BallClass,方法是在GameClass.as里写:
import BallClass;
var ball = new BallClass();

所以第1种方法不是全部没用,就是,用错了地方
小楼宝宝的涂鸦花花(Imitater)的博客起名称骨测字皖ICP备06000023号-17