AS3 Импорт FLA-файла - PullRequest
       13

AS3 Импорт FLA-файла

2 голосов
/ 15 января 2010

У меня есть два проекта as3. Проект A имеет 2 файла (fla с 1 фреймом и некоторыми компонентами и as с некоторым поведением и конструктором по умолчанию). Я хочу использовать проект A в моем проекте B через код as3. Но когда я делаю что-то вроде A a = new A(x, y, z);, я получаю много ошибок, которые в моем A.as я использую неопределенные свойства (определенные в моем A.fla файле).

Итак, сейчас я использую загрузчик для динамической загрузки A.swf в мой проект B. Это, вероятно, не эффективный способ сделать это. Как правильно импортировать проект A в проект B?

Спасибо.

1 Ответ

3 голосов
/ 15 января 2010

загрузка SWF не плохой способ сделать это ..

**** РЕДАКТИРОВАТЬ Я забыл самый очевидный ответ: Если вы используете CS4, перейдите в настройки публикации и установите флажок «Экспортировать как SWC». В flaB свяжите внешнюю библиотеку (настройки Actionscript) с только что созданным SWA flaA. Теперь вы можете сказать в пределах flaB addChild(new flaAClass());

Это дает вам доступ во время компиляции к любому символу библиотеки в FLA A. Это означает, что вы не можете использовать класс документа, поэтому убедитесь, что вы создали символ библиотеки для того, что вы хотите перенести в FLA B, и экспортировать его для actioncript. Затем установите метку класса символа на что-то уникальное. Замените "flaAClass" в приведенном выше примере своим именем для символа.

Но вы не должны определять какие-либо свойства в самом FLA. Хороший стандарт для работы таков: 1) Перейдите в настройки публикации и снимите флажок «Автоматически объявлять экземпляры сцены».

2) Настройте свой класс документа / мувиклип / что угодно, чтобы была ссылка на материал на сцене в классе (вот почему вы должны выполнить шаг 1 - в противном случае он будет жаловаться, что вы объявите его дважды)

Пример: у вас на сцене мувиклип "mcA" .. ваш класс может выглядеть так:

пакет {

public class mainA extends MovieClip {
public var mcA:MovieClip;
      public function mainA(...args):void
      {
         trace(mcA); //If mcA is on the stage and this is the document class, this will 
         //return [object MovieClip]
      }
}

}

3) Присоедините как класс документа или базовый класс к чему-либо в вашем мувиклипе, и вы можете ссылаться на него таким образом.


Вышеописанное будет работать для пользовательского динамического класса, но не будет содержать ничего, что вы принесли с FLA. Если вы хотите извлечь что-то из fla A и поместить его во fla B, вам следует сначала загрузить SWF, а затем извлечь класс из его библиотеки (но это может быть ненужной сложностью, которая вам не нужна).

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