Вы должны иметь возможность создать пакет для этого. Основной формат:
// folder specifies the relative folder of the package
package myfolder {
// whatever other classes you need
import flash.display.*;
import flash.events.*;
// base this on whatever class you need (in this case MovieClip)
public class myclass extends MovieClip {
private var myvariable: String;
// constructor
public function myclass() {
}
// functions only for use within the class
private function myprivatefunction() {
}
// functions for use by the rest of the world
public function mypublicfunction() {
}
}
}
Конструктор вызывается при создании нового экземпляра Class-- это, где вы могли бы сделать инициализацию. Затем в ваш график, просто добавить что-то вроде:
import myclass;
var myclassinstance = new myclass();
myclassinstance.mypublicfunction(); // call a function in the class
См adobe's help для более подробной информации.
Так что я попытался это:
package {
import flash.display.*;
public class Node {
public var fX:Number;
public var fY:Number;
public var bmp:Bitmap;
public function Node() { }
}
}
И положил его в файл с именем Node.as (обратите внимание, что мне нужно, чтобы добавить импорт flash.display и капитал «N» в имени файла). В FLA-файле в том же каталоге я добавил это к первому кадровому сценарию:
import Node;
var node = new Node();
trace("node="+node);
Он скомпилирован и работает без ошибок. Должно быть что-то еще происходит? Какую версию Flash и ActionScript вы используете?
Это не работает для меня. У меня есть простой файл node.as в том же каталоге, поэтому у меня нет имени пакета. Мой файл node.as выглядит следующим образом: пакет { открытый класс Узел { public var fX: Number; public var fY: Number; public var bmp: Bitmap; public function Node() { } } } –
И затем в моем сценарии временной шкалы я импортирую узел. То, что действительно вызывает у меня мысли, состоит в том, что если я просто изменил название класса, это изменит ошибку. Как Узел, я получаю «Ошибка № 2136, SWF содержит недопустимые данные». Ошибка возникает, когда я говорю node = new Node; Но если я изменил все ссылки Node на BmpNode как в сценарии временной шкалы, так и на node.as и импортировал BmpNode, он дает мне ошибку «1172: Определение BmpNode не найдено». И ошибка возникает при импорте BmpNode, а не при вызове new. –