Как и в 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.*;