Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > API приложений и сред

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 20.12.2011, 16:27
faraday вне форума Посмотреть профиль Отправить личное сообщение для faraday Найти все сообщения от faraday
  № 1  
Ответить с цитированием
faraday
 
Аватар для faraday

Регистрация: Apr 2009
Сообщений: 409
По умолчанию не работает flashVars

Привет, форум. Возникла следующая, слабо поддающаяся логическому объяснению, проблема:
передаю в main переменные var main:Mains=new Mains(stage.loaderInfo.parameters as Object);
там их отправляю в конструктор VK.api .внутри самой main, есть несколько вызовов VK.api и передача flashvars, как параметра другим классам. Те вызовы что внутри Main(getVariable например) работают нормально, а те что внутри других классов нет, при этом ошибки функцией onError не отлавливаются, и flashVars внутри них трейсится правильно. Удалось решить проблему, если отправлять не все параметры из варса.
Код AS3:
public function Mains(flashVar:Object) {
			var flashVars:*=new Object  ;
			   flashVars['api_id'] = flashVar['api_id'];
			  flashVars['viewer_id'] = flashVar['viewer_id'];
			    flashVars['sid'] = flashVar['sid'];
			  flashVars['secret'] = flashVar['secret']; 
			   flashVars['auth_key'] = flashVar['auth_key'];
Ну заработало и хорошо, на время забил.. Но теперь возникла необходимость обращаться к JS функциям контакта, а для этого нужен полный flashVars с параметром lc_name . попробовал добавить как раньше flashVars['lc_name'] = flashVar['lc_name']; Но с ним не работает ни один другой метод. Единственный вариант щас, это делать два VK, один с полными параметрами, другой с пятью. Один для методов java, другой для конактовских, но это уже дикое извращение, хочется разобраться с вариантов без костылей.

Старый 20.12.2011, 18:40
ZergMaster вне форума Посмотреть профиль Отправить личное сообщение для ZergMaster Найти все сообщения от ZergMaster
  № 2  
Ответить с цитированием
ZergMaster
 
Аватар для ZergMaster

Регистрация: May 2008
Адрес: Питер
Сообщений: 385
Отправить сообщение для ZergMaster с помощью ICQ Отправить сообщение для ZergMaster с помощью Skype™
эмм... судя по коду вообще не понятно, почему flashvarsы вызываются из других классов... должно же быть так

Код AS3:
public static var flashVars:Object;
public function Mains(flashVar:Object) {
			flashVars=flashVar;
и тогда из других классов они буду вызываться через
Код AS3:
Mains.flashvars['uid'] //и т.п.
или я что-то недопонял?
__________________
while(live()) { hope(); }

Старый 20.12.2011, 20:58
faraday вне форума Посмотреть профиль Отправить личное сообщение для faraday Найти все сообщения от faraday
  № 3  
Ответить с цитированием
faraday
 
Аватар для faraday

Регистрация: Apr 2009
Сообщений: 409
Я передаю их как параметр в конструктор классов.

Старый 21.12.2011, 14:12
faraday вне форума Посмотреть профиль Отправить личное сообщение для faraday Найти все сообщения от faraday
  № 4  
Ответить с цитированием
faraday
 
Аватар для faraday

Регистрация: Apr 2009
Сообщений: 409
Вот, вынес в отдельный пример для понятности.
Если отправить только 4 переменные, то метод срабатывает и внутри Main и внутри TestClass
Если же, отправлять все переменные, то сработает только внутри одного класса. чудеса
Вложения
Тип файла: rar com.rar (6.2 Кб, 47 просмотров)

Старый 21.12.2011, 16:38
ZergMaster вне форума Посмотреть профиль Отправить личное сообщение для ZergMaster Найти все сообщения от ZergMaster
  № 5  
Ответить с цитированием
ZergMaster
 
Аватар для ZergMaster

Регистрация: May 2008
Адрес: Питер
Сообщений: 385
Отправить сообщение для ZergMaster с помощью ICQ Отправить сообщение для ZergMaster с помощью Skype™
вообще я бы в кадре лучше ничего не писал) ни к чему это

может быть проблема в том, что у ВК могут быть не лады со stage?
можно попробовать
Код AS3:
var main:Mains=new Mains(this.loaderInfo.parameters as Object);
если это не поможет, то я бы попробовал не писать в первом кадре ничего, а создать документкласс проекта mainClass и в нем

Код AS3:
package {
 
	import flash.display.MovieClip;
 
	public class mainClass extends MovieClip {
		public static var flashVars:Object = new Object();
 
		public function mainClass() {
			flashVars = this.loaderInfo.parameters;
			var test:Test=new Test(flashVars);
			addChild(test);
		}
 
	}
}
тогда если и это не сработает, можно вызывать из любых других классов объект flashVars путем mainClass.flashVars
__________________
while(live()) { hope(); }

Старый 21.12.2011, 16:50
faraday вне форума Посмотреть профиль Отправить личное сообщение для faraday Найти все сообщения от faraday
  № 6  
Ответить с цитированием
faraday
 
Аватар для faraday

Регистрация: Apr 2009
Сообщений: 409
всё равно не работает(

Старый 21.12.2011, 16:57
ZergMaster вне форума Посмотреть профиль Отправить личное сообщение для ZergMaster Найти все сообщения от ZergMaster
  № 7  
Ответить с цитированием
ZergMaster
 
Аватар для ZergMaster

Регистрация: May 2008
Адрес: Питер
Сообщений: 385
Отправить сообщение для ZergMaster с помощью ICQ Отправить сообщение для ZergMaster с помощью Skype™
у меня была похожая ошибка на одной платформе. Флэш почему-то видел флэшварсы только в первом классе, а когда я загружал в первую флешку вторую, начинались глюки... он не видел некоторых варов. Это странно, скорее всего это связано с тем, что при загрузке флешек друг в друга их код перемешивается и классы становятся общими.
В итоге я эту проблему не решил, а обошел, создав в окружении js функцию, возвращающую при запросе флешу флэшварсы. Создал класс, обрабатывающий ExternalInterface и в итоге в любом месте кода мог обратиться к функции этого класса, которая возвращала флешварсы, просто заново их получая каждый раз от js
__________________
while(live()) { hope(); }

Старый 21.12.2011, 17:14
faraday вне форума Посмотреть профиль Отправить личное сообщение для faraday Найти все сообщения от faraday
  № 8  
Ответить с цитированием
faraday
 
Аватар для faraday

Регистрация: Apr 2009
Сообщений: 409
ну в главной флешке все параметры видит, сомневаюсь что теряются параметры при передаче другим классам, слишком уж серьёзный глюк. тем более внутри классов трейс выдаёт правильные варсы. вся проблема начинается если передавать с варсами flashVars['lc_name'] , но при этом сам вк.апи на это никак не ругается.

Старый 24.12.2011, 16:52
carrotoff вне форума Посмотреть профиль Отправить личное сообщение для carrotoff Найти все сообщения от carrotoff
  № 9  
Ответить с цитированием
carrotoff
 
Аватар для carrotoff

Регистрация: May 2010
Сообщений: 543
Цитата:
вся проблема начинается если передавать с варсами flashVars['lc_name']
То же самое. Дождался события от VK CONN_INIT и исключение пропало, но коллбэк не вызывается, хотя смотрю сниффером - данные пришли.
__________________
Вы грабите бедных людей. Парень со свирелью накажет вас. Хонгильдон (с)

Создать новую тему Ответ Часовой пояс GMT +4, время: 21:51.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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