在尝试学习如何在ActionScript中创建对象时,我没有成功.我注意到的一件事是,似乎有十亿种不同的方式.即使他们都没有为我工作.这真让我感到困惑,我不知道尝试调试的方法.
似乎最常出现的方法是:
function myClass() { this.val = 1; } var test = new myClass(); trace(test.val);
但这只是给我编译错误,无论我做多么简单,对我来说一个函数可能是一个对象是没有意义的.如果函数是一个对象,那么"this"指向函数中的函数(被解释为对象)时的位置.
另一种似乎不太经常出现的方式是:
class myClass { function myClass() { this.val = 1; } } var test = ....
这也给我编译错误,似乎更正式.但我可以找到很少的文档comparitivley.大多数指南要么非常简单,要么假设您正在谈论内置对象.
第三种方法是创建一个
new Object();在函数中,添加所需的所有内容并将其返回.似乎合乎逻辑.但我已经阅读了各种提到原型的东西,看起来像这样创建的对象不适合成为原型.但我真的很困惑.
我还发现了一些东西,说AS2和AS3之间的Object语法不同,但仅此而已.
我该如何创建对象?什么是最佳实践,对于上帝的爱,有人知道我在哪里可以找到深入的教程吗?(我的谷歌显然很弱)
AS2和AS3之间的类语法确实不同.对于AS3,语法如下所示:
package somePackage { public class SomeClass { public function SomeClass() { } } }
作为解释,包是一个包装器,可以包含多个类,因此您必须声明包含每个类定义的包.
类需要构造函数.在大多数语言中,构造函数的名称与类的名称相同.ActionScript就是这种情况.
调用类的实例看起来像这样:
package somePackage { public class OtherClass { public function OtherClass() { var something = new SomeClass(); } } }
我已将AS3参考放在我面前,所以我对上面的代码片段非常有信心,但不幸的是我的AS2参考正在工作,但代码看起来应如下所示:
class ThirdClass { public function ThirdClass() { } }
然后实例化变量应该看起来像这样:
var third = new ThirdClass();
请注意,所提供的示例不使用强类型,我建议您尽可能在ActionScript工作中使用.
虽然我强烈建议您选择Essential ActionScript 2.0和/或Essential ActionScript 3.0的副本,但我发现以下链接用于开始教程:
开始Flash和ActionScript教程
更多初学者教程