几个文件的ActionScript 3类 - 如何?

时间:2010-05-05 18:06:10

标签: actionscript-3 actionscript

那么,我们如何在动作脚本3中为几个文件编写一个类?

在C#中有“部分”关键字。

在C ++中它很自然(你只是“#include ......”所有文件)。

在Flex 3中,在组件中添加以下标记:<mx:Script source="myfile.as"/>

如何将以下类拆分为多个文件;

package package_path
{
    public class cSplitMeClass
    {
        public function cSplitMeClass()
        {
        }

        public function doX():void
        {
            // ....
        }

        public function doY():void
        {
            // ....
        }
    }
}

例如,我希望在另一个“.as”文件中实现doX()和doY()函数。

我可以这样做吗?

请不要告诉我“好的做法是将它们放在一个文件中”:)

3 个答案:

答案 0 :(得分:6)

根据您的要求,我将为您提供“最佳实践讲座”。所以,我只想说AS 3.0中有一个include directive,它可以帮到你。

基本上,你可以这样做:

package package_path
{
    public class cSplitMeClass
    {
        public function cSplitMeClass()
        {
        }

        include "the_file_where_doX_and_doY_live.as"
     }
}

然后在“the_file_where_doX_and_doY_live.as”

    public function doX():void
    {
        // ....
    }

    public function doY():void
    {
        // ....
    }

答案 1 :(得分:0)

你可以继承:

// file: cSplitMe1.as

class cSplitMe1 {

   function doX() {
       // ...
   }

// file: cSplitMe2.as

class cSplitMe2 extends cSplitMe1 {

   function doY() {
       // ...
   }

// file: cSplitMe.as

class cSplitMe extends cSplitMe2 {

   function cSplitMe() {
       doX();
       doY();
   }
}

答案 2 :(得分:-1)

这是好习惯,没错。

import个关键字。例如:

import Class_A.as;
import Class_B.as;

当然,为了使用它们,您需要声明它们,最好是在构造函数中。

public function Class_C()
{
    //Create a new instance of Class_A
    var objA:Object = new Class_A("parameter one", "parameter two");
    //Create a new instance of Class_B
    var objA:Object = new Class_B("parameter one", "parameter two");
}

当然,这一切都取决于你将如何开展这项工作。我还建议您使用Main类来运行代码。我想你已经知道了。

祝你好运。