Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Flashdevelop Embed SWF / не хочет работать (http://www.flasher.ru/forum/showthread.php?t=201850)

nikasdf 24.06.2013 17:48

Flashdevelop Embed SWF / не хочет работать
 
Добрый день.

Имеется скомпилированный SWF, если подгружать его Loader-ом то все свойства видны и естественно работают.

Как вставить его в основной проект чтобы не подгружать каждый раз ?


Код AS3:

[Embed(source = "../../../../asset/test.swf")]
private  var _test:Class;
 
 
var test:MovieClip = new _test();
    test.init(); //



Цитата:

[Fault] exception, information=ReferenceError: Error #1069: Property init not found on ... and there is no default value.

AlexCooper 24.06.2013 18:25

Цитата:

Код AS3:

var test:MovieClip = new _test();
    test.init();


у класса MovieClip нет метода init();

таким образом вытяните символ (то-есть экземпляр класса)
Код AS3:

[Embed (source="../asset/cloud.swf", symbol='cloud')]
private var Image1Class:Class;


nikasdf 24.06.2013 19:15

Спасибо за совет, но пока все равно не получается

Код AS3:

 
[Embed(source = "../../../../lib/test.swf", symbol = "Test")]
private var TestClass:Class;
 
public function Assets()
{
 new TestClass();
}

Цитата:

...Assets.as(18): col: 3: Error: definition for symbol 'Test' not found
[Embed(source = "../../../../lib/test.swf", symbol = "Test")]
сам символ Test существует его видно во ФД

делал точно так как описано тут

ошибка все равно не исчезает

GBee 24.06.2013 19:40

Так а класс то прописали во флеше?

nikasdf 24.06.2013 19:48

Цитата:

Сообщение от GBee (Сообщение 1139128)
Так а класс то прописали во флеше?

test.swf уже скомпилированный и работает только в том случае когда подгружается Loader-ом.

Или я не правильно вас понял ?

GBee 24.06.2013 19:51

Я просто не понимаю, вы сначала дергаете какой-то инит, потом пытаетесь достать символ.

nikasdf 24.06.2013 20:18

У меня есть скомпилированная библиотека test.SWF

Подгружается она в мой проект Loader-ом и работает

примерно так:

Код AS3:

private function loadLib(url:String = 'http://host/test.SWF'):void
{
  var swfurl:URLRequest = new URLRequest(url);
  _loader = new Loader();
  _loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete);
  _loader.load(swfurl);
}
 
private        function loadComplete(event:Event):void
{
  var test:MovieClip = MovieClip(_loader.content);
      test.init();
      addChild(test);
}

моя цель не подгружать данную библиотеку Loader-ом, а заранее вставить ее в мой проект.

GBee 24.06.2013 20:33

Тогда все правильно было изначально. А в дебаге что виднеется?

maxkar 24.06.2013 20:35

Не получится у вас через embed сделать это. При embed весь код символа теряется. Экспортируйте библиотеку в swc и используйте. Или как массив байт эмбедьте и грузите лоадером.

Цитата:

If the SWF file contains any ActionScript code, Flex prints a warning during compilation and then strips out the ActionScript from the embed symbol. This means that you can only embed the symbol itself.
Возможно, правда, из какой-то древней справки. Но, скорее всего, сейчас это тоже актуально.

nikasdf 24.06.2013 20:57

Цитата:

Сообщение от maxkar (Сообщение 1139138)
Не получится у вас через embed сделать это. При embed весь код символа теряется. Экспортируйте библиотеку в swc и используйте. Или как массив байт эмбедьте и грузите лоадером.

Понятно, возможность экспортировать библиотеку в swc нет тк у меня только скомпилированный файл. Значит оставим все так как есть.

Всем большое спасибо


Часовой пояс GMT +4, время: 12:24.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.