Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 18.01.2016, 22:56
AsCen Veddge вне форума Посмотреть профиль Отправить личное сообщение для AsCen Veddge Найти все сообщения от AsCen Veddge
  № 1  
Ответить с цитированием
AsCen Veddge

Регистрация: Jan 2016
Сообщений: 6
По умолчанию Как подключить класс из swf на этапе выполнения?

При загрузке одного swf в другой (лоадер+апликэйшн домейн) его класс не определяется как класс на этапе компиляции. (Type was not found or was not a compile-time constant: Slut)
Код:
 ...
        ldr = new Loader(); 
        var req:URLRequest = new URLRequest("../bin/Slut.swf");
	    var appDomainB:ApplicationDomain = ApplicationDomain.currentDomain;
        var ldrContext:LoaderContext = new LoaderContext(false, appDomainB); 
	    ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler); 
	    ldr.load(req, ldrContext); 
	}
		private function completeHandler(event:Event):void 
        { 
		var Sluts:Class = event.target.applicationDomain.getDefinition("Slut") as Class; 
                var mySlut:Sluts = Sluts(event.target.content);
IDE:FD,
use network services: false,
фактически это пример использования метода из загруженного swf из документации adobe...
Вопрос: что не так с настройками FlashDevelop? Или нужно что-то прописать в Slut?

дополнение: остальные примеры с applicationDomain из документации также не работают (по другому - другие ошибки, но принцип тот же - не видит Slut как класс).

Добавлено через 30 часов 56 минут
итерационным методом был получен следующий результат:
Код:
       var mySlut:*= new Sluts();
тогда методы из загруженной swf Slut работают.
кроме того, в заголовке класса Slut установлено:
Код:
      /**
     * @mxmlc accessible=true
     * 
     */
, но это, наверное, ни при чём, как и use network service.

Старый 21.01.2016, 14:59
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 2  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Код AS3:
public function addLibrary(loaderinfo:LoaderInfo):void 
		{
			var info:ApplicationDomain = loaderinfo.applicationDomain;
			var cls:Class = null;
 
 
		        cls = info.getDefinition("HUD3") as Class;
 
			hud = new cls() as MovieClip;
 
			history = info.getDefinition("HistorySymbol");
 
 
 
			cls = info.getDefinition("GameGFX") as Class;
			back = new cls() as MovieClip;
И т.п.
__________________
Марк Tween

Старый 21.01.2016, 16:36
gloomyBrain вне форума Посмотреть профиль Отправить личное сообщение для gloomyBrain Найти все сообщения от gloomyBrain
  № 3  
Ответить с цитированием
gloomyBrain
 
Аватар для gloomyBrain

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
Посмотрите вот эту тему: http://www.flasher.ru/forum/showthread.php?t=144282
Ну и почитайте про политики безопасности, все дело в них.
__________________
...вселенская грусть

Старый 21.01.2016, 16:41
undefined вне форума Посмотреть профиль Отправить личное сообщение для undefined Найти все сообщения от undefined
  № 4  
Ответить с цитированием
undefined

Регистрация: Oct 2006
Сообщений: 2,281
Sluts
Миниатюры
Нажмите на изображение для увеличения
Название: Скриншот 2016-01-21 14.40.21.png
Просмотров: 41
Размер:	180.2 Кб
ID:	31981  

Старый 23.01.2016, 02:44
Rzer вне форума Посмотреть профиль Отправить личное сообщение для Rzer Посетить домашнюю страницу Rzer Найти все сообщения от Rzer
  № 5  
Ответить с цитированием
Rzer
 
Аватар для Rzer

блогер
Регистрация: Feb 2007
Адрес: Spb
Сообщений: 612
Записей в блоге: 8
Отправить сообщение для Rzer с помощью ICQ
я всегда использую getDefinitionByName, попробуй с ним

Старый 01.02.2016, 17:39
AsCen Veddge вне форума Посмотреть профиль Отправить личное сообщение для AsCen Veddge Найти все сообщения от AsCen Veddge
  № 6  
Ответить с цитированием
AsCen Veddge

Регистрация: Jan 2016
Сообщений: 6
Проблема была в том, что фд не принимал класс из загруженной свф-ки.
А сейчас он перестал понимать нормальный код и начал выдавать совершенно причудливые ошибки, при каждой попытке компиляции разные. Пришлось его снести. Поэтому текущий вопрос такой: как установить пятый Флешдевелоп в стэндалоне режиме? Не могли бы благородные доны и доньи подсказать толковые гайды и доки по настройке ФДшечки? Спасибо.
p.s.:класс слут был назван столь причудливо не только из фривольных соображений, но дабы обеспечить уникальность именования оного.

Старый 01.02.2016, 18:52
Rzer вне форума Посмотреть профиль Отправить личное сообщение для Rzer Посетить домашнюю страницу Rzer Найти все сообщения от Rzer
  № 7  
Ответить с цитированием
Rzer
 
Аватар для Rzer

блогер
Регистрация: Feb 2007
Адрес: Spb
Сообщений: 612
Записей в блоге: 8
Отправить сообщение для Rzer с помощью ICQ
Если вопрос, про определение классов кодом, то нужно компилисть внешний проект в swf и swc. Далее подключать swc (Правой кнопкой > Add to library), а затем в настройках выбирать External Library (Правой кнопкой > опции). И грузить swf в текущий ApplicationDomain

Старый 02.02.2016, 10:06
AsCen Veddge вне форума Посмотреть профиль Отправить личное сообщение для AsCen Veddge Найти все сообщения от AsCen Veddge
  № 8  
Ответить с цитированием
AsCen Veddge

Регистрация: Jan 2016
Сообщений: 6
Вопрос уже про настройку\переустановку Flashdevelop, потому что он уже находит ошибку в таком коде:
Код:
var timer:Timer;
timer:Timer = new Timer(1000,0);

Старый 02.02.2016, 10:55
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 9  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Вряд ли дело в FD. Скорее всего Flex / AIR sdk подключен не правильно
кстати система случайно не 8ка 64 битная?

Старый 02.02.2016, 11:56
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 10  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Цитата:
потому что он уже находит ошибку в таком коде:
И всегда находил. И будет находить после переустановки.
__________________
Reality.getBounds(this);

Создать новую тему Ответ Часовой пояс GMT +4, время: 16:49.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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