Import

Как и в ActionScript, в haXe использутеся конструкция import для подключения классов из разных пакетов. Неудобство ее в том, что нельзя подключить сразу весь пакет, а нужно указывать каждый класс отдельно

import some.where.*; // это не работает
import some.where.Class1;
import some.where.Class2;
import some.where.Class3;

К счастью, эту проблему можно обойти с помощью typedef, задавая синонимы типов. Для этого создаем отдельный файл BigPackageImport.hx и пишем в нем:

import some.where.Class1;
import some.where.Class2;
import some.where.Class3;

typedef Class1 = some.where.Class1;
typedef Class2 = some.where.Class2;
typedef Class3 = some.where.Class3;

в дальнейшем можно подключить только этот файл и использовать все типы, определенные в нем через typedef:
import BigPackageImport;

class Main
{
    public function new()
    {
        var c1:Class1 = new Class1();
        var c2:Class2 = new Class2();
        var c3:Class3 = new Class3();
    }
}

Вот пример ближе к жизни. Создадим файл ImportFlash9.hx
import flash.display.Sprite;
import flash.display.Graphics;
import flash.display.Loader;
import flash.display.Bitmap;
import flash.events.Event;

typedef Sprite = flash.display.Sprite;
typedef Graphics = flash.display.Graphics;
typedef Loader = flash.display.Loader;
typedef Bitmap = flash.display.Bitmap;
typedef Event = flash.events.Event;

// ну и так далее - все, что понадобится

и потом подключаем это в Main.hx
import ImportFlash9;

class Main
{
    public function new()
    {
        var s:Sprite = new Sprite();
        var l:Loader = new Loader();
    }
}

Как видно, это даже удобнее, чем import flash.display.*;

Комментарии

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <blockcode> <dd>
  • Строки и параграфы переносятся автоматически.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>.

Подробнее о форматировании

CAPTCHA
Этот вопрос помогает предотвратить автоматический спам
Image CAPTCHA
Enter the characters shown in the image without spaces, also respect upper and lower case.
To prevent automated spam submissions leave this field empty.