Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Наследование от LoaderInfo. ArgumentError: Error #2012 при попытке создания объекта. (http://www.flasher.ru/forum/showthread.php?t=148887)

Aquahawk 13.01.2011 18:22

Наследование от LoaderInfo. ArgumentError: Error #2012 при попытке создания объекта.
 
Даже не знаю, что тут можно сказать, код говорит за себя. В 2007 году у etc подобный этот трюк удался (http://www.flasher.ru/forum/showthread.php?t=96563)
Код AS3:

package {
        import flash.display.LoaderInfo;
 
        public class CustomLoaderInfo extends LoaderInfo { //если убрать наследование от LoaderInfo то всё прекрасно работает.
                public function CustomLoaderInfo() {
                        trace("CONSTRUCTOR");
                }
        }
}

Код AS3:

package {
        import flash.display.Sprite;
 
        public class Main extends Sprite {
                public function Main():void {
                        var cli:CustomLoaderInfo = new CustomLoaderInfo(); // тут имеем [Fault] exception, information=ArgumentError: Error #2012: Класс CustomLoaderInfo не может быть создан.
                }
        }
}

Где я криво написал?

wvxvw 13.01.2011 21:20

С того времени этот класс переделывали раза 3 как минимум, наверное запретили на каком-то этапе. Надо пробовать с плеером, который в то время был, если хочется убедиться, что оно работало вообще.

Aquahawk 13.01.2011 22:35

Да мне не особо важно работало ли оно вообще, мне надо бы чтоб сейчас работало. А как это могли запретить? playerglobal.swc декомпилировал, там ничего криминального на этот счёт.

-De- 13.01.2011 22:47

Если для целей многопоточной загрузки, то я делал Dictionary, в которых хранил LoaderInfo и с помощью него определял, что именно отвалилось/загрузилось.

Aquahawk 13.01.2011 22:49

Нет, это для целей создать свой LoaderInfo и Loader и свой лоадер отдаёт свой лоадеринфо, который по интерфейсу в точности лоадеринфо, но внутри содержит дополнительный функционал. в частности собирает всех ивентлисенеров что на него вешают.

Psycho Tiger 13.01.2011 23:25

Ну сделайте композицию.

wvxvw 13.01.2011 23:42

в playerglobal интерфейсы восновном, да и что толку его разбирать, если настоящие классы не там вообще? Раз есть такая ошибка, значит запретили, точно так же, как можно отнаследоваться от стейджа, но создать такой класс нельзя и т.п.

dimarik 13.01.2011 23:47

Я тоже недавно (тройку месяцев назад) не смог подменить LoaderInfo своим, на чем и успокоился.

Добавлено через 50 секунд
Цитата:

Сообщение от Psycho Tiger (Сообщение 964452)
Ну сделайте композицию.

И сделал таки её.

Добавлено через 3 минуты
Цитата:

Сообщение от Aquahawk (Сообщение 964444)
внутри содержит дополнительный функционал. в частности собирает всех ивентлисенеров что на него вешают.

Не стоит оно того. Точно Вам говорю. Тем более, что нам это явно запрещают. У Вас есть богатая низкоуровневая функциональность. Соберите ее в свой класс многопоточного лоадера, если другие не устраивают.

Psycho Tiger 14.01.2011 01:07

Кстати, а вообще. Чисто теоретически, зачем нужно создание своего LoaderInfo? Менеджеры загрузок?

Aquahawk 14.01.2011 14:02

Удалось решить проблему без создания своего loaderInfo. Поднятый вопрос не решён, но надобность в его решении отпала, тему можно закрывать.


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

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