Просмотр полной версии : Про loadVariablesNum и LoadVars
ВиталийS
02.03.2007, 21:51
Сделал игру (при старте 3 кнопки: 1-играть, 2-правила, 3-рекорды (в данной кнопке прописано - loadVariablesNum("score.php", 0, "POST");. При окончании игры опять те же кнопки, но на другом кадре).
Проблема как раз с рекордами. Имеется score.php, который при определенных условиях: 1- выдает результаты из txt в соответствующие текстовые поля флешки, 2- записывает новые результаты, если они превосходят старые в тот же txt-файл.
Результат:
Выдает нормально, записывает тоже, но потом когда хочу вновь просмотреть результаты – то он опять записывает и записывает, хотя дана команда - не записывать больше. Чувствую, что loadVariablesNum –не успевает выполнять нужное действие.
Пол дня в поиске «висел» и понял, что лучше использовать LoadVars. Но с этим впервые сталкиваюсь и не знаю, как правильно написать. Во всех примерах показано, мол, нужно в теле функции писать нужные операции/команды. Как быть, если score.php сам все делает.
В чем проблема при loadVariablesNum("score.php", 0, "POST") –действительно не успевает?
Напишите, пожалуйста, как правильно написать вызов рнр при LoadVars.
Спасибо.
this.create
02.03.2007, 23:25
Нужен пример, иллюстрирующий вашу проблему.
ВиталийS
02.03.2007, 23:42
Что именно? РНР?
Ниже привожу РНР (кстати, взят из раздела исходники в этом сайте.
http://flasher.ru/src/single/{src.pg=1820}
Немного переделал):
<?
$NameNew = $NameNew;
$NameNew = stripslashes($NameNew);
########### Считывание и запись из/в текстовый файл.
if ($Submit == "Yes") {
#Указание текстового файла, в котором будут хранится сообщения.
$filename = "score.txt";
#Открывает файл для чтения.
$fp = fopen( $filename,"r");
$OldData = fread($fp, 80000);
fclose( $fp );
#SРасщепление старых данных в массив,как только встречается такая фишка .:::.
$DataArray = split (".:::.", $OldData);
array_push ($DataArray,"$NameNew");
rsort ($DataArray, SORT_NUMERIC);
$Input = "$DataArray[0].:::.$DataArray[1].:::.$DataArray[2].:::.$DataArray[3].:::.$DataArray[4].:::.$DataArray[5].:::.$DataArray[6].:::.$DataArray[7].:::.$DataArray[8].:::.$DataArray[9].:::.";
$New = "$Input";
#Открывает файл для записи.
$fp = fopen( $filename,"w+");
fwrite($fp, $New, 80000);
fclose( $fp );
}
########## Выведение данных в swf ##
#Указывает, какой файл использовать для хранения сообщений.
$filename = "score.txt";
#Открывает файл для чтения.
$fp = fopen( $filename,"r");
$Data = fread($fp, 80000);
fclose( $fp );
#SРасщепление старых данных в массив,как только встречается такая фишка .:::.
$DataArray = split (".:::.", $Data);
rsort ($DataArray, SORT_NUMERIC);
for ($i=0; $i<10; $i++){
print "&s$i=$DataArray[$i]";
}
############### Конец.
?>
Во флеше под каждую кнопку "Рекорды" для вывода рез-тов - пишу Submit="No";
loadVariablesNum("score.php", 0, "POST");
для записи новых рез-ов определенная кнопка -
Submit="Yes";
loadVariablesNum("score.php", 0, "POST");
P.S. и конечно соответсвующие поля для вывода результатов.
ВиталийS, для оформления кода существуюи специальные форумные теги. Оформите свой пост, как полагается.
this.create
03.03.2007, 00:17
ВиталийS
Нет, я в PHP не разбираюсь. Думаю, что проблема в том, что вы не отслеживаете событие загрузки. Для loadVariablesNum нужно писать спец функцию, которая будет следить за загрузкой. А у LoadVars есть встроенный метод onLoad.
ВиталийS
03.03.2007, 00:18
Виноват
:rolleyes:
Что именно? РНР?
Ниже привожу РНР (кстати, взят из раздела исходники в этом сайте.
http://flasher.ru/src/single/{src.pg=1820}
Немного переделал):
<?
$NameNew = $NameNew;
$NameNew = stripslashes($NameNew);
########### Считывание и запись из/в текстовый файл.
if ($Submit == "Yes") {
#Указание текстового файла, в котором будут хранится сообщения.
$filename = "score.txt";
#Открывает файл для чтения.
$fp = fopen( $filename,"r");
$OldData = fread($fp, 80000);
fclose( $fp );
#SРасщепление старых данных в массив,как только встречается такая фишка .:::.
$DataArray = split (".:::.", $OldData);
array_push ($DataArray,"$NameNew");
rsort ($DataArray, SORT_NUMERIC);
$Input = "$DataArray[0].:::.$DataArray[1].:::.$DataArray[2].:::.$DataArray[3].:::.$DataArray[4].:::.$DataArray[5].:::.$DataArray[6].:::.$DataArray[7].:::.$DataArray[8].:::.$DataArray[9].:::.";
$New = "$Input";
#Открывает файл для записи.
$fp = fopen( $filename,"w+");
fwrite($fp, $New, 80000);
fclose( $fp );
}
########## Выведение данных в swf ##
#Указывает, какой файл использовать для хранения сообщений.
$filename = "score.txt";
#Открывает файл для чтения.
$fp = fopen( $filename,"r");
$Data = fread($fp, 80000);
fclose( $fp );
#SРасщепление старых данных в массив,как только встречается такая фишка .:::.
$DataArray = split (".:::.", $Data);
rsort ($DataArray, SORT_NUMERIC);
for ($i=0; $i<10; $i++){
print "&s$i=$DataArray[$i]";
}
############### Конец.
?>
Во флеше под каждую кнопку "Рекорды" для вывода рез-тов - пишу Submit="No";
loadVariablesNum("score.php", 0, "POST");
для записи новых рез-ов определенная кнопка -
Submit="Yes";
loadVariablesNum("score.php", 0, "POST");
P.S. и конечно соответсвующие поля для вывода результатов.
this.create
03.03.2007, 00:20
Свои посты можно редактировать. ;)
ВиталийS
03.03.2007, 00:21
this.create
Спасибо, думаю, что и это тоже влияет на результат.
А как правильней написать LoadVars вызов рнр-файла?
ВиталийS
03.03.2007, 00:22
Свои посты можно редактировать. ;)
В смысле?
this.create
03.03.2007, 00:28
this.create
Спасибо, думаю, что и это тоже влияет на результат.
А как правильней написать LoadVars вызов рнр-файла? У LoadVars есть метод sendAndLoad. Посмотрте в help его описание.
Про редактирование: отредактируйте ваш второй пост и удалите дублирующий.
ВиталийS
03.03.2007, 00:43
У LoadVars есть метод sendAndLoad. Посмотрте в help его описание.
Про редактирование: отредактируйте ваш второй пост и удалите дублирующий.
В каком help? Во ФЛЕШЕ?
Там примера нет....да и во всех случаях пишут так:
var submitListener:Object = new Object();
submitListener.click = function(evt:Object) {
var result_lv:LoadVars = new LoadVars();
result_lv.onLoad = function(success:Boolean) {
if (success) {
result_ta.text = result_lv.welcomeMessage;
} else {
result_ta.text = "Error connecting to server.";
}
};
var send_lv:LoadVars = new LoadVars();
send_lv.name = name_ti.text;
send_lv.sendAndLoad("http://www.flash-mx.com/mm/greeting.cfm", result_lv, "POST");
};
submit_button.addEventListener("click", submitListener);
(взят из )
Я в моем случае, что ставить вместо:
send_lv.name = name_ti.text;
ВиталийS
03.03.2007, 00:45
(взят из:
http://livedocs.adobe.com/flash/8/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00002336.html
ВиталийS
03.03.2007, 00:53
Мне же просто написать через LoadVars вызов score.php и он сам все сделает... как в этом случае:
loadVariablesNum("score.php", 0, "POST");
ВиталийS
03.03.2007, 00:55
Как правильней написать через LoadVars
ВиталийS получает предупреждение за игнорирование замечания модератора. Имейте ввиду, что следующего плюса не будет, будет бан.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.