Форум программистов, компьютерный форум, киберфорум
Наши страницы
ActionScript
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.76/17: Рейтинг темы: голосов - 17, средняя оценка - 4.76
pasha000
0 / 0 / 0
Регистрация: 10.01.2010
Сообщений: 7
1

Action Script 3. Значение переменной вне функции всегда null

10.01.2010, 13:50. Просмотров 3066. Ответов 11
Метки нет (Все метки)

Здравствуйте, есть код.
ActionScript 3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import classes.VkomandeClass; 
 
var vkm : VkomandeClass = new VkomandeClass();
vkm.getUrl = 'a=1&b=2&c=3';
 
vkm.addEventListener("loadComplete", complMessage);
vkm.addEventListener("loadFailed", failMessage);
vkm.getXML();
 
function complMessage(e : Event) {
  trace("Загрузка успешно завершена");
  trace(vkm.resultData);
}
 
function failMessage(e : Event){
  trace("При загрузке возникли ошибки");
}
ActionScript 3
1
2
3
4
function complMessage(e : Event) {
  trace("Загрузка успешно завершена");
  trace(vkm.resultData);
}
важная мне информация лежит в vkm.resultData

далее создаю два класса для работы
ActionScript 3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
var user:VKUser = new VKUser(this.loaderInfo.parameters);
user.viewer_id = '3894466';
 
var sender: VKSender = new VKSender(user);
sender.addEventListener(Event.COMPLETE, xmlListUsersComplete);
 
sender.testMode = true;
 
var uid:String = vkm.resultData;
sender.getProfiles(uid); // функции sender.getProfiles(); пытаюсь скормить vkm.resultData (номера анкет через запятую 3894455, 8955667)
function xmlListUsersComplete(e:Event):void
{
  //trace(XML(sender.response))
 
/*<response list="true">
  <user>
    <uid>3894466</uid>
    <first_name>Pasha</first_name>
    <last_name>Toropov</last_name>
  </user>
</response>
*/
}
листинг класса VkomandeClass.as
ActionScript 3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
package util
{
    import com.adobe.crypto.MD5;
    
    import flash.display.*;
    import flash.events.*;
    import flash.net.*;
    
    public class VkomandeClass extends EventDispatcher
    {        
    public var URL_XMLUSERSLIST:String = "http://vkomande/xmlUsersPyramid.php";
    
        public var VK_USER_VIEWER_ID:String;
        public var VK_API_SETTINGS:String;
        public var VK_USER_ID:String;
        public var VK_IS_APP_USER:String;
        public var VK_AUTH_KEY:String;
        
        public var VKM_UIDS:String;
        //public var DATA_XMLUSERS:XML;
        //public var USER_AUTH_SAFE:Number;
        
        
        
        public function VkomandeClass()
        {
         //var user: VKUser = new VKUser(this.loaderInfo.parameters);
        }
        
        public function GetUsers():void
        {
         //var xmlLoader:URLLoader = new URLLoader(new URLRequest("http://api.vkontakte.ru/api.php?"+getUrl));
         var xmlLoader:URLLoader = new URLLoader(new URLRequest(URL_XMLUSERSLIST+"?authKey="+VK_AUTH_KEY+"&pid="+VK_USER_VIEWER_ID));
         xmlLoader.addEventListener(Event.COMPLETE, GetXmlUsers);
        }
        
        public function GetXmlUsers(e:Event):void
        {
         var XmlData = XML(e.target.data);
         var xmlUsersLength = XmlData.children().length();
         var uidsString:String = '';
          for (var i:int = 0; i < xmlUsersLength; i++) {
            var vkID:String = XmlData.children()[i].@vk_id;       
            var comma:String = ',';
   
            if(i == 0){
            uidsString += vkID;       
            }else{
            uidsString += comma+vkID;
            }
          }
          VKM_UIDS = uidsString;
        }
        
    }
}
почему то значение vkm.resultData вне функций всегда равно null. Подскажите пожалуйста как сделать чтобы в sender.getProfiles(uid);. все таки получилось подставить значения? возможно можно как то обойти? спасибо!
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.01.2010, 13:50
Ответы с готовыми решениями:

Action Script 2.0
1. Ограничение выхода объекта за пределы сцены. 2. При нажатии клавиш на клавиатуре (по...

Action Script и 3D
Меня интересует вопрос, на AS можно 3D игры писать?

Не присваивается значение переменной вне процедуры или функции
Imports System.IO Public Class Form3 Public a As String a =...

Полю нигде не присваивается значение, поэтому оно всегда будет иметь значение null
Пишу программу которая должна png картинки преобразовывать в матрицу (матрица заносится в...

Html: в блоке Select значение addr.SelectedIndex всегда остается 0, вне зависимости от выбранного пункта
Доброго времени суток уважаемые форумчане! Вопрос банален до невозможности, но сам не понимаю в...

11
Quadro9
32 / 32 / 1
Регистрация: 23.07.2009
Сообщений: 170
10.01.2010, 15:59 2
а локализовать проблему нельзя? зачем приводить весь код??
в первом листинге ты вызываешь функцию vkm.getXML(); а в VkomandeClass такой функции нет!
вобщем мутно все как-то..
непонятно где ты создаешь новые классы, в том же файле? и нужна ли эта инфа в контексте проблемы?
лучше скажи нормально ли трейсится дата при загрузке?
0
pasha000
0 / 0 / 0
Регистрация: 10.01.2010
Сообщений: 7
10.01.2010, 17:32  [ТС] 3
Попробую объяснить с нуля.

В классе VkomandeClass есть переменная
ActionScript 3
1
public var VKM_UIDS:String;
Далее в самом классе
ActionScript 3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public function GetUsers():void
{
var xmlLoader:URLLoader = new URLLoader(new URLRequest(URL_XMLUSERSLIST+"?authKey="+VK_AUTH_KEY+"&pid="+VK_USER_VIEWER_ID));
xmlLoader.addEventListener(Event.COMPLETE, GetXmlUsers);
}
        
public function GetXmlUsers(e:Event):void
{
var XmlData = XML(e.target.data);
var xmlUsersLength = XmlData.children().length();
 
var uidsString:String = 'text for examplde';
 
VKM_UIDS = uidsString;
}
на главной пишу
ActionScript 3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
var vkm:VkomandeClass = new VkomandeClass();
vkm.addEventListener('GetXmlUsersVkm', xmlListUsersVkm);
 
function xmlListUsersVkm(e:Event)
{ 
//trace (vkm.VKM_UIDS); // тут все хорошо
}
 
//trace (vkm.VKM_UIDS); вне функции результат null хотя вроде в vkm.VKM_UIDS лежит
 
//пытаюсь скормить vkm.VKM_UIDS функцииsender.getProfiles();
 
var sender: VKSender = new VKSender(user);
sender.addEventListener(Event.COMPLETE, xmlListUsersComplete);
 
sender.testMode = true;
sender.getProfiles(vkm.VKM_UIDS);
function xmlListUsersComplete(e:Event):void
{
  trace(XML(sender.response))
}
0
Quadro9
32 / 32 / 1
Регистрация: 23.07.2009
Сообщений: 170
10.01.2010, 17:41 4
ActionScript 3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var vkm:VkomandeClass = new VkomandeClass();
vkm.addEventListener('GetXmlUsersVkm', xmlListUsersVkm);
var sender: VKSender = new VKSender(user);
sender.addEventListener(Event.COMPLETE, xmlListUsersComplete);
 
sender.testMode = true;
function xmlListUsersVkm(e:Event)
{ 
//trace (vkm.VKM_UIDS); // тут все хорошо
sender.getProfiles(vkm.VKM_UIDS);// тут и надо пользовать переменную
}
 
//trace (vkm.VKM_UIDS); тут переменная еще не существует
function xmlListUsersComplete(e:Event):void
{
  trace(XML(sender.response))
}
0
pasha000
0 / 0 / 0
Регистрация: 10.01.2010
Сообщений: 7
10.01.2010, 18:41  [ТС] 5
sender.getProfiles(vkm.VKM_UIDS);

в функции xmlListUsersVkm ни к чему не привел
0
Quadro9
32 / 32 / 1
Регистрация: 23.07.2009
Сообщений: 170
10.01.2010, 19:09 6
подробней отчет, давай, что значит ни к чему не привел? сендер виден в той функции?
гетПрофаилс правильно отрабатывает?
0
pasha000
0 / 0 / 0
Регистрация: 10.01.2010
Сообщений: 7
10.01.2010, 19:20  [ТС] 7
sender идет отдельно от VKomandeClass. поэтому не виден я думаю
0
Вложения
Тип файла: rar null.rar (36.5 Кб, 27 просмотров)
Quadro9
32 / 32 / 1
Регистрация: 23.07.2009
Сообщений: 170
10.01.2010, 19:52 8
что-то ты там намудрил у меня даже vkm.GetUsers(); не срабатывает, т.к. аускея нету...
ты ж говорил у тебя гет юсерс срабатывает, дай тогда уж ту версию
0
pasha000
0 / 0 / 0
Регистрация: 10.01.2010
Сообщений: 7
10.01.2010, 20:49  [ТС] 9
разобрался сам. работает. мне не понятно почему так сработал код)
Javascript
1
2
3
4
5
6
7
8
var sender: VKSender = new VKSender(user);
sender.testMode = true;
 
function xmlListUsersVkm(e:Event)
{ 
var uids:String = vkm.VKM_UIDS;
sender.getProfiles(uids);
}
класс VKSender создали вне функции xmlListUsersVkm
но в функции с ним можно работать. такая особенность AS3 ?
0
Вложения
Тип файла: rar null.rar (36.5 Кб, 25 просмотров)
Quadro9
32 / 32 / 1
Регистрация: 23.07.2009
Сообщений: 170
10.01.2010, 21:18 10
нормальная особенность, если бы наооборот, создал в функции то за ее пределами не смог бы использовать..
кстати в твоем примере vkm.GetUsers(); продолжает неправильно работать, точнее вобще не работает и выдает ошибку
Error opening URL 'http://vkomande/xmlUsersPyramid.php?authKey=null&pid=3894455'
Error #2044: Unhandled ioError:. text=Error #2032: Stream Error. URL: http://vkomande/xmlUsersPyramid.php?authKey=null&pid=3894455
at util::VkomandeClass/GetUsers()
at btn_fla::MainTimeline/frame1()
0
pasha000
0 / 0 / 0
Регистрация: 10.01.2010
Сообщений: 7
10.01.2010, 23:56  [ТС] 11
Цитата Сообщение от Quadro9 Посмотреть сообщение
нормальная особенность, если бы наооборот, создал в функции то за ее пределами не смог бы использовать..
кстати в твоем примере vkm.GetUsers(); продолжает неправильно работать, точнее вобще не работает и выдает ошибку
на localhost тестю просто)
0
Quadro9
32 / 32 / 1
Регистрация: 23.07.2009
Сообщений: 170
11.01.2010, 00:35 12
ну тады ясно ))
0
11.01.2010, 00:35
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.01.2010, 00:35

Получение значения локальной переменной функции вне этой функции
Возможно ли переменную объявленную в функции использовать за ее пределами? Функции вызывается...

Получить значение переменной вне класса
Здравствуйте. Начал изучать ООП в php и наткнулся на такую проблему. Есть файл config, в нём...

Как передать значение переменной из Java Script в ASP?
Привет! Обьясните популярно для тех кто на бронепоезде как передать значение переменной из Java...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru