Класс ActionScript 3 над несколькими файлами - как? - PullRequest
2 голосов
/ 05 мая 2010

Итак, как нам написать класс для нескольких файлов в сценарии действия 3?

В C # есть ключевое слово "Partical".

В 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
        {
            // ....
        }
    }
}

Например, я хочу, чтобы функции doX () и doY () были реализованы в другом файле ".as".

Могу ли я сделать это?

И, пожалуйста, не говорите мне что-то вроде "хорошая практика - хранить их в одном файле":)

Ответы [ 3 ]

6 голосов
/ 11 мая 2010

Согласно вашему запросу, я избавляю вас от «лекции по передовым методам». Итак, я просто скажу, что в AS 3.0 есть директива include , которая может помочь вам в этом.

В основном вы можете сделать:

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
    {
        // ....
    }
0 голосов
/ 11 мая 2010

Вы можете сделать это с наследованием:

// 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();
   }
}
0 голосов
/ 06 мая 2010

Это хорошая практика, в этом нет ничего плохого.

Это ключевое слово 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, из которого вы могли бы запустить свой код. Я думаю, ты уже знал это.

Удачи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...