Инструкция работает вне функции, но не внутри в ActionScript 2 Flash - PullRequest
0 голосов
/ 03 июня 2010

Я не знаю, почему эта инструкция работает, когда я пишу это так:

lv = new LoadVars();
lv.sVar1 = "value1";
lv.sVar2 = "value2";
lv.onLoad = onLoadCallBack;
lv.sendAndLoad("http://localhost/tiempo/flash/rsstoflash.php?" + new Date(), lv, "POST");

Но если поместить этот код в функцию следующим образом:

function carga() {
lv = new LoadVars();
lv.sVar1 = "value1";
lv.sVar2 = "value2";
lv.onLoad = onLoadCallBack;
lv.sendAndLoad("http://localhost/tiempo/flash/rsstoflash.php?" + new Date(), lv, "POST");
}
carga();

Компилятор сказал мне:

Ошибка при открытии URL 'Файл: /// C | / веб-сервер / WWW / Tiempo / вспышка / неопределенными' Ошибка при открытии URL 'Файл: /// C | / веб-сервер / WWW / Tiempo / вспышка / неопределенными' Ошибка при открытии URL 'Файл: /// C | / веб-сервер / WWW / Tiempo / вспышка / неопределенными'

Есть идеи?

1 Ответ

0 голосов
/ 03 июня 2010

Одной из проблем может быть проблема области видимости.

Когда ваш var lv объявлен внутри функции, это локальная переменная. Таким образом, он не существует, когда функция, вызывающая его, выполнена.

Итак, это предотвращает срабатывание функции обратного вызова lv.

Предполагая, что у вас есть функция onLoadCallBack, объявленная в другом месте вашего кода, способ обойти это будет либо объявить var lv = new LoadVars(); глобально (т.е. вне функции), либо создать массив или какой-либо другой глобальный контейнер в нем хранятся экземпляры загрузчиков (например, если вы хотите запустить несколько приложений одновременно).

Примерно так будет выглядеть:

var lv_array = new Array();

function carga() {
var lv = new LoadVars();
lv.sVar1 = "value1";
lv.sVar2 = "value2";
lv.onLoad = onLoadCallBack;
lv.sendAndLoad("http://localhost/tiempo/flash/rsstoflash.php?" + new Date(), lv, "POST");
}
carga();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...