Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   getDefinition( Document Class) (http://www.flasher.ru/forum/showthread.php?t=113173)

Nicolas Prof 20.06.2008 16:45

getDefinition( Document Class)
 
Не получается получить документ класс подгружаемой SWF. Что неверно?

Trace:
Код:

EffectsConfig INIT
LOADED
ReferenceError: Error #1065: Variable EffectsConfig is not defined.

Loaded Document Class:
Код:

package prof.com.profgallery {
        import flash.display.Sprite;
       
        /**
        * @author Nicolas Prof
        * Jun 20, 2008
        */
        public class EffectsConfig extends Sprite {
                public function EffectsConfig() {
                        trace("EffectsConfig INIT");
                }

                public function initiate() : void {
                        trace("CATCHED");
                }
        }
}

Loading:
Код:

private function loadEffectsConfig(path: String) : void {
                        Debug.trace("LOAD EFFECTS CONFIG");
            var request:URLRequest = new URLRequest(path);
                        request.method = URLRequestMethod.POST;
            var context : LoaderContext = new LoaderContext();
            context.applicationDomain = new ApplicationDomain (  ApplicationDomain.currentDomain );
                        var loader:Loader = new Loader();
                        loader.contentLoaderInfo.addEventListener(Event.INIT, onLoadEffectsConfig);       
                        loader.load(request, context);
                       
                }

private function onLoadEffectsConfig(e : Event) : void {
                        trace("LOADED");
                        var loader : Loader = e.currentTarget.loader as Loader;
                        _baseLayer.addChild(loader);
                        try{
                                var Test : Class = loader.loaderInfo.applicationDomain.getDefinition("EffectsConfig") as Class;
                        }catch(e:*){
                                trace(e);
                        }
                       
                }


wvxvw 20.06.2008 17:04

Класс называется prof.com.profgallery.EffectsConfig, а не EffectsConfig

Nicolas Prof 20.06.2008 17:25

Цитата:

Сообщение от wvxvw (Сообщение 746724)
Класс называется prof.com.profgallery.EffectsConfig, а не EffectsConfig

при
Код:

var Test : Class = loader.loaderInfo.applicationDomain.getDefinition("prof.com.profgallery.EffectsConfig") as Class;
Trace:
Код:

EffectsConfig INIT
LOADED
ReferenceError: Error #1065: Variable EffectsConfig is not defined.


wvxvw 20.06.2008 17:54

Ну, нинаю, тогда вы - избранный =) у других работает =)
А остальные классы из этого же пакета получается получить, или только специфически этот?

А, не стоп... а почему на ИНИТ событие вешается, а не на КОМПЛИТ? Ессно, там ничего не будет =)

Nicolas Prof 20.06.2008 18:16

Цитата:

Сообщение от wvxvw (Сообщение 746741)
Ну, нинаю, тогда вы - избранный =) у других работает =)
А остальные классы из этого же пакета получается получить, или только специфически этот?

А, не стоп... а почему на ИНИТ событие вешается, а не на КОМПЛИТ? Ессно, там ничего не будет =)

Цитата:

init - Dispatched when the properties and methods of a loaded SWF file are accessible.
что собственно и нужно.
Пробовал с COMPLETE, результат тот же.

wvxvw 20.06.2008 19:02

тогда ищите ошибку в написании имен... чудес не бывает...
Да, и нужен именно комплит, а не инит. Инит вызывается до комплит в любом случае.

STILL.05 20.06.2008 19:23

флешка A подгружает флешку B
во флешке B есть класс MyClass

если ты во флешке B не создал экземпляр класс MyClass то он не компилется с флешкой B, т.к. компилятор считает что этот класс не нужен!
И поэтому ты не можешь получить в A класс из B

Nicolas Prof 20.06.2008 19:41

Так что нельзя получить Document Class ?

etc 20.06.2008 19:54

Приведенный код верен.

Nicolas Prof 20.06.2008 20:02

Цитата:

Сообщение от __etc (Сообщение 746791)
Приведенный код верен.

Тогда в чем может быть проблема?
Весь день уже воюю.
Уже пробовал даже вот:

Код:

//var Test : Class = loader.loaderInfo.applicationDomain.getDefinition("prof.com.profgallery.EffectsConfig") as Class;
                                //var Test : Class = getDefinitionByName("prof.com.profgallery.EffectsConfig") as Class;
                                var Test : Class = Class(getDefinitionByName(getQualifiedClassName(loader.content)));



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

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