2

在尝试学习如何在 ActionScript 中创建对象时,我没有成功。我注意到的一件事是,似乎有十亿种不同的方式来做这件事。即使他们都没有为我工作。这真的让我很困惑,我不知道尝试调试哪种方法。

似乎最常出现的方法是:

函数 myClass() {
   这个.val = 1;
}

var test = new myClass();
跟踪(test.val);

但这只会给我编译器错误,无论我做得多么简单,而且对我来说,一个函数可以是一个对象是没有意义的。如果函数是一个对象,那么当它在函数中的函数中时“this”指向哪里(被解释为对象)。

另一种似乎不太常见的方式是:

类我的类{
   函数 myClass() {
       这个.val = 1;
   }
}

变种测试 = ....

这也给了我编译器错误,而且看起来更正式。但我可以找到很少的文档比较。大多数指南要么非常简单,要么假设您正在谈论内置对象。

出现的第三种方法是创建一个

新对象();
在一个函数中,添加你想要的所有东西并返回它。似乎合乎逻辑。但是我读过各种提到原型的东西,而且似乎以这种方式创建的对象不适合作为原型。但实际上我只是很困惑。

我还遇到了一些说法,说 AS2 和 AS3 之间的对象语法不同,但仅此而已。

我应该如何创建对象?什么是最佳实践,看在上帝的份上,有人知道我在哪里可以找到深入的教程吗?(我的 google-fu 显然很弱)

4

1 回答 1

5

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 教程

更多初学者教程

于 2008-11-12T04:04:03.973 回答