2013-12-15 3 views
0

Я просто хочу создать класс с двумя числами и растровым изображением. У вас не могут быть вложенные классы в сценарии Timeline, поэтому я решил, что сделаю файл .as, а именно «node.as». Но я не могу на всю жизнь понять, как импортировать этот класс в сценарий Timeline, чтобы я мог использовать этот класс в моем сценарии Timeline.Как импортировать класс из файла пользовательского ActionScript

Пожалуйста, помогите!

ответ

0

Вы должны иметь возможность создать пакет для этого. Основной формат:

// 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 вы используете?

+0

Это не работает для меня. У меня есть простой файл node.as в том же каталоге, поэтому у меня нет имени пакета. Мой файл node.as выглядит следующим образом: пакет { открытый класс Узел { public var fX: Number; public var fY: Number; public var bmp: Bitmap; public function Node() { } } } –

+0

И затем в моем сценарии временной шкалы я импортирую узел. То, что действительно вызывает у меня мысли, состоит в том, что если я просто изменил название класса, это изменит ошибку. Как Узел, я получаю «Ошибка № 2136, SWF содержит недопустимые данные». Ошибка возникает, когда я говорю node = new Node; Но если я изменил все ссылки Node на BmpNode как в сценарии временной шкалы, так и на node.as и импортировал BmpNode, он дает мне ошибку «1172: Определение BmpNode не найдено». И ошибка возникает при импорте BmpNode, а не при вызове new. –

Смежные вопросы