Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Глобальная переменная не хранит данные (http://www.flasher.ru/forum/showthread.php?t=136746)

snat 24.02.2010 20:03

Глобальная переменная не хранит данные
 
Ребят, решить обернуть методы апи вконтакте в классы (но вопрос не по апи) и столкнулся с проблемкой. Есть переменная класса XMLdata:XML в методе записываю в неё значения, вывожу переменную через trace(XMLdata) и вижу что данные в неё успешно записались, но в другом методе опять вывожу эту переменную и вижу null. Как так может быть ? Вот код:

Код AS3:

package 
{
        import api.MD5;
        import flash.events.Event;
        import flash.net.*;
 
        public class VKmethods
        {
                public var API_ID:String = "1833756";
                public var VIEWER_ID:String = "9060138";
                public var API_SECRET:String = "APFFhywt9K";
                public var API_URL:String = "http://api.vkontakte.ru/api.php";
                public var TEST_MODE:String = "1";
                public var loader:URLLoader = new URLLoader();
                public var XMLdata:XML;
 
                public function SendRequest(Request:String):void
                {
                        var URLReq:URLRequest = new URLRequest(Request);
                        loader.load(URLReq)
                        loader.addEventListener(Event.COMPLETE,AfterLoad);
                }
 
                public function AfterLoad(e:Event):void
                {
                        XMLdata = new XML(loader.data);
                }
 
                public function getFriends():void
                {
                        var sig = MD5.encrypt(VIEWER_ID+"api_id="+API_ID+"method=getFriendstest_mode=1v=2.0"+API_SECRET);
                        var Request:String = API_URL+"?api_id="+API_ID+"&v=2.0&method=getFriends&test_mode="+TEST_MODE+"&sig="+sig;
                        this.SendRequest(Request);
                }
 
                public function ReturnXMLdata():XML
                {
                        trace(XMLdata);
                        return XMLdata;
                }
        }
}

Ну а это основная программа где создаю объект класса и вызываю метод:

Код AS3:

function ButtonPush(e:MouseEvent):void
{
        var T:VKmethods = new VKmethods();
        T.getFriends();
        MainText.text = String(T.ReturnXMLdata());
}
butt_go.addEventListener(MouseEvent.CLICK, ButtonPush);

Подскажите где я ошибся

wvxvw 24.02.2010 20:46

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

snat 24.02.2010 21:12

Правила оформления кода буду изучать =)
По коду. XML загружается и доступен из функции AfterLoad, но после её выполнения и loader и XMLdata остаются пустыми, не пойму только почему так происходит


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

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