Форум программистов, компьютерный форум, киберфорум
ActionScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/20: Рейтинг темы: голосов - 20, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 10.01.2010
Сообщений: 7
1

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

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

Author24 — интернет-сервис помощи студентам
Здравствуйте, есть код.
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
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
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 = My.Computer.FileSystem.ReadAllText(&quot;C:\log.txt&quot;,...

11
 Аватар для Quadro9
32 / 32 / 1
Регистрация: 23.07.2009
Сообщений: 170
10.01.2010, 15:59 2
а локализовать проблему нельзя? зачем приводить весь код??
в первом листинге ты вызываешь функцию vkm.getXML(); а в VkomandeClass такой функции нет!
вобщем мутно все как-то..
непонятно где ты создаешь новые классы, в том же файле? и нужна ли эта инфа в контексте проблемы?
лучше скажи нормально ли трейсится дата при загрузке?
0
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
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
0 / 0 / 0
Регистрация: 10.01.2010
Сообщений: 7
10.01.2010, 19:20  [ТС] 7
sender идет отдельно от VKomandeClass. поэтому не виден я думаю
Вложения
Тип файла: rar null.rar (36.5 Кб, 27 просмотров)
0
 Аватар для Quadro9
32 / 32 / 1
Регистрация: 23.07.2009
Сообщений: 170
10.01.2010, 19:52 8
что-то ты там намудрил у меня даже vkm.GetUsers(); не срабатывает, т.к. аускея нету...
ты ж говорил у тебя гет юсерс срабатывает, дай тогда уж ту версию
0
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 ?
Вложения
Тип файла: rar null.rar (36.5 Кб, 25 просмотров)
0
 Аватар для 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/xmlUsersPyrami... id=3894455
at util::VkomandeClass/GetUsers()
at btn_fla::MainTimeline/frame1()
0
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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.01.2010, 00:35
Помогаю со студенческими работами здесь

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

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

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

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

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


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

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

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Новые блоги и статьи
Что нового в C# 14
UnmanagedCoder 10.03.2025
Предстоящая версия C# 14 обещает принести изменения, которые сделают разработку еще более приятной и эффективной. Что стоит отметить, так это влияние сообщества разработчиков на формирование новых. . .
Формулы поворота
Igor3D 10.03.2025
Добрый день Тема Эти формулы приводятся во множестве тьюториалов, часто под видом "матрица вращения на плоскости". x' = x * cos(a) - y * sin(a) y' = y * cos(a) + x * sin(a) Как бы Вы их. . .
Что нового в .NET 10
UnmanagedCoder 10.03.2025
. NET 10 выходит как релиз с длительной поддержкой (LTS), включающей три года обновлений. В этом обновлении Microsoft сфокусировались на нескольких направлениях: производительность, оптимизация. . .
Отложенное высвобождение, RCU и Hazard Pointer в C++26
NullReferenced 09.03.2025
Многопоточное программирование стало важной частью современной разработки. Когда несколько потоков одновременно работают с общими данными, возникает целый ряд проблем, связанных с синхронизацией и. . .
Неблокирующийся стек на C++26
NullReferenced 09.03.2025
Традиционные способы синхронизации в многопоточном программировании — мьютексы, семафоры, условные переменные — часто превращаются в узкое место в плане производительности. При этом неблокирующиеся. . .
Обработка строк в C++26: Новые возможности string и string_view
NullReferenced 09.03.2025
Новый стандарт C++26 предлагает много улучшений для работы с привычными string и относительно новыми string_view. string_view - это невладеющая ссылка на последовательность символов, появившаяся в. . .
Мой первый аддон для Blender 3D, с помощью нейронки (не зная даже азов пайтона, но это не значит что так и с остальным).
Hrethgir 09.03.2025
Потратил весь день. Пол-дня мне хватило, чтобы понять что с версией с 14B мне не одолеть написание функционального кода, на языке с которым я вообще никак не знаком - пайтон. Версия 22B от другого. . .
Einstein@Home сегодня исполняется двадцать лет!
Programma_Boinc 09.03.2025
Einstein@Home сегодня исполняется двадцать лет! Отправлено 19 февраля 2025 года в 17:20:21 UTC Я хочу поздравить всех наших волонтеров, разработчиков и ученых из Einstein@Home. Мы официально. . .
Заполнители и расширенный набор символов в C++26
NullReferenced 09.03.2025
C++26 представляет два важных обновления: заполнители и расширенный набор символов. Заполнители (placeholders) решают давнюю проблему лаконичности кода в шаблонных выражениях и лямбда-функциях. Они. . .
Контракты в C++26
NullReferenced 09.03.2025
Контракты – это механизм, позволяющий указывать предусловия, постусловия и инварианты для функций в коде. Эта функциональность должна была стать частью C++20, но была исключена на встрече комитета. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru