Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Хочу сделать прелоадер без getDefinitionByName (http://www.flasher.ru/forum/showthread.php?t=215705)

mikhailk 03.04.2019 17:56

Хочу сделать прелоадер без getDefinitionByName
 
Собственно, сабж.

Сейчас прелоадер реализован стандартным образом через

Код AS3:

[Frame(factoryClass="Preloader")]

Однако, такая реализация подразумевает, что потом в прелоадере, когда он загрузит все, что должен, будет вызвано

Код AS3:

var mainClass:Class = getDefinitionByName("MainClass") as Class;
addChild(new mainClass() as DisplayObject);

Стоит задача убрать из кода getDefinitionByName.
Нет ли какого способа передать в Preloader класс напрямую?
Чтобы он его не вычислял?

СлаваRa 03.04.2019 18:58

Если не секрет, то в чем проблема?

mikhailk 03.04.2019 19:08

Секрет. :)
Считаем, что просто анализирую возможность реализации прелоадера без getDefinitionByName.

caseyryan 04.04.2019 09:48

Цитата:

Нет ли какого способа передать в Preloader класс напрямую?
Так в этом же и состоит вся суть загрузчика. Если класс передать напрямую, он с собой все зависимости подтянет и смысл загрузчика потеряется

mikhailk 04.04.2019 11:49

Это я понимаю

Возможно, хотелось какой-нибудь трюк, типа:
1. в коде прелоадера есть переменная mainAppClass, которая по определению null
2. после загрузки эта переменная каким-то чудом начинает ссылаться на главный класс приложения
3. как только она не null - дальше все как обычно

Опять же, конструкция [Frame(factoryClass="Preloader")]
Пользуюсь тысячу лет, но ни разу не видел спецификацию на нее.

RedHead90 04.04.2019 17:43

Цитата:

Сообщение от mikhailk (Сообщение 1206434)
после загрузки эта переменная каким-то чудом начинает ссылаться на главный класс приложения

Без чуда тут явно не обойтись. Для такого трюка тебе надо будет изменить байт-код прелоадера в рантайме, но сделать этого ты не сможешь.
Вообще не понятно, зачем такое может понадобиться? Если тебе не нравится, что имя класса жестко задается строкой, то в принципе можно получить список имен всех загруженных классов и определить, какой из них надо создать. Но даже в таком случае без getDefinitionByName не обойтись.


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

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