Показать сообщение отдельно
Старый 27.05.2011, 16:32
Сeргей вне форума Посмотреть профиль Отправить личное сообщение для Сeргей Найти все сообщения от Сeргей
  № 1  
Ответить с цитированием
Сeргей

Регистрация: May 2011
Адрес: Санкт-Петербург
Сообщений: 44
По умолчанию Не работает VK.api из дочернего фильма.

Проблема в следующем: есть фильм-папа, который запрашивает права у пользователя, добавляет приложение. Потом после выполнения всех условий, начинает загрузку дочернего фильма. В дочернем фильме идет обращение к VK.api. Например, friends.get. Функция не работает. Если вместо фильма-папы загрузить дочерний фильм, функция работает исправно.
В чем проблема?
Может неправильное обращение к VK.api в дочернем фильме?

Примеры кода:
Фильм-папа:
Код AS3:
import vk.APIConnection;
import vk.events.*;
var flashVars: Object = stage.loaderInfo.parameters as Object;
var VK: APIConnection = new APIConnection(flashVars);
a1.visible = false;
VK.addEventListener("onApplicationAdded", onApplicationAdded);
function onApplicationAdded(e:CustomEvent):void {
	VK.callMethod("showSettingsBox", 1030);
	a1.visible = true;
}
if (flashVars.is_app_user == 1) {
	if (!(flashVars.api_settings & 2) || !(flashVars.api_settings & 4) || !(flashVars.api_settings & 1024)) {
		VK.callMethod("showSettingsBox", 1030);
		a1.visible = true;
	} else {
		var loader:Loader = new Loader();
		var url:URLRequest = new URLRequest("http://cs10344.vkontakte.ru/u2932426/602e43ed452aa9.zip");
		loader.load(url);
		addChild(loader);
	}
}
if (flashVars.is_app_user == 0) {
	VK.callMethod("showInstallBox");
}
a1.addEventListener(MouseEvent.CLICK, click_);
function click_(evt:MouseEvent) {
	VK.callMethod("showSettingsBox", 1030);
}

Дочерний фильм:
Код AS3:
import vk.APIConnection;
var flashVars:Object=stage.loaderInfo.parameters as Object;
var VK:APIConnection=new APIConnection(flashVars);
VK.api("friends.get", {uid:flashVars.viewer_id}, Friends, FriendsErr);
function Friends(response:Object) {
	function getLength(o:Object):uint {
		var len:uint = 0;
		for (var item:* in o) {
			if (item != "mx_internal_uid") {
				len++;
			}
		}
		return len;
	}
	var func =getLength(response);
	var text_:TextField=new TextField();
	text_.text = "У вас "+func " друзей";
	addChild(text_);
}
function FriendsErr(response:Object) {
	var text_:TextField=new TextField();
           text_.width = 300;
	text_.text = "Ошибочка вышла. Попробуйте еще разок!";
	addChild(text_);
}