Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   API приложений и сред (http://www.flasher.ru/forum/forumdisplay.php?f=61)
-   -   private var flashVars: Object = stage.loaderInfo.parameters ; (http://www.flasher.ru/forum/showthread.php?t=208378)

Lampy 07.07.2014 03:32

private var flashVars: Object = stage.loaderInfo.parameters ;
 
Всем привет. Пытаюсь подгрузить swf файл в другой, ругается на :
Код AS3:

private var flashVars: Object = stage.loaderInfo.parameters ;
private var VK:APIConnection = new APIConnection(flashVars);

Помогите, целый день убил, так и не смог разобраться. Код всего swf файла и лоадера :

Файл -
Код AS3:

package 
{
        import flash.display.Loader;
        import flash.display.Sprite;
        import flash.events.Event;
        import flash.net.URLRequest;
        import flash.text.TextField;
        import vk.APIConnection;
 
        /**
        * ...
        * @author Lampy
        */

        public class Main extends Sprite
        {
                private var flashVars: Object = stage.loaderInfo.parameters ;
                private var VK:APIConnection = new APIConnection(flashVars);
                public function Main():void
                {
                        if (stage) init();
                        else addEventListener(Event.ADDED_TO_STAGE, init);
                }
 
                private function init(e:Event = null):void {
                        removeEventListener(Event.ADDED_TO_STAGE, init);
                        VK.api ('users.get', { user_ids: flashVars['viewer_id'],fields:'photo_100' }, onProfileLoaded, onError);}
 
 
                private function onProfileLoaded(data:Object):void {
            // обрабатываем полученный ответ
            var result_tf:TextField = new TextField();
                        result_tf.text = data[0]['photo_100'];
                        var loader:Loader = new Loader();
                        var url:URLRequest = new URLRequest(result_tf.text);
                        loader.load(url);
                        addChild(loader);}       
                private function onError(data: Object):void {  }        }}

Лоадер -

Код AS3:

var loader: Loader = new Loader();
loader.load(new URLRequest("http://o.swf"));
addChild(loader);


australian incognito 07.07.2014 04:23

Попробуйте вот так:
Код AS3:

var flashVars:Object = root.stage.loaderInfo.parameters as Object;


caseyryan 07.07.2014 07:15

Проблема в том, что обращение к stage происходит еще до того, как она становится доступна. Если сделать так:
Код AS3:

package 
{
        import flash.display.Loader;
        import flash.display.Sprite;
        import flash.events.Event;
        import flash.net.URLRequest;
        import flash.text.TextField;
        import vk.APIConnection;
 
        /**
        * ...
        * @author Lampy
        */

        public class Main extends Sprite
        {
                private var flashVars: Object = null ;
                private var VK:APIConnection = null;
                public function Main():void
                {
                        if (stage) init();
                        else addEventListener(Event.ADDED_TO_STAGE, init);
                }
 
                private function init(e:Event = null):void {
                        removeEventListener(Event.ADDED_TO_STAGE, init);
                        flashVars = stage.loaderInfo.parameters;
                        VK = new APIConnection(flashVars);
                        VK.api ('users.get', { user_ids: flashVars['viewer_id'],fields:'photo_100' }, onProfileLoaded, onError);}
 
 
                private function onProfileLoaded(data:Object):void {
            // обрабатываем полученный ответ
            var result_tf:TextField = new TextField();
                        result_tf.text = data[0]['photo_100'];
                        var loader:Loader = new Loader();
                        var url:URLRequest = new URLRequest(result_tf.text);
                        loader.load(url);
                        addChild(loader);}       
                private function onError(data: Object):void {  }        }}

То все будет работать

Lampy 07.07.2014 12:24

возникает другая проблема. При использовании кода
Код AS3:

private function onCompi (e:Event):void {
                        init(); }

или

Код AS3:

private function onCompliteLoader (e:Event) :void {
                        Main(parent).init();}

Пропадает аватарка и появляется, только после обновления всего приложения.

caseyryan 07.07.2014 13:52

Что это ха хрень? Не надо использовать такой код

Lampy 07.07.2014 13:55

А как реализовывать переключение уровней?
У меня получается, что при использовании
Код AS3:

   private function onCompliteLoader (e:Event) :void {
                Main(parent).init();}

повторно не вызывается функция с отображением onProfileLoaded
Код AS3:

VK.api ('users.get', { user_ids: flashVars['viewer_id'],fields:'photo_100' }, onProfileLoaded, onError);

вот и как быть


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

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