PDA

Просмотр полной версии : Сохранение переменной при перезапуске флешки


Lyso
22.12.2010, 10:32
Мне надо сделать переменную, которая будет загружаться с php, она будет сохраняться, даже если флешка перезагружена.
Я решил сделать на примере, для лёгкого понимания.
Main.as:

package {
import flash.display.MovieClip;
import flash.net.*;
import flash.events.*;

public class Main extends MovieClip {
var chislo=0;
public function Main(){
btn.addEventListener(MouseEvent.CLICK,btn_click);
}

function btn_click(e:Event):void{
var loader:URLLoader=new URLLoader();
var request:URLRequest=new URLRequest('http://lyso.jino.ru/test.php');
request.method=URLRequestMethod.POST;

var vars:URLVariables=new URLVariables();
chislo+=1;
vars['myVar']=chislo;
loader.addEventListener(Event.COMPLETE, onComplete);
request.data=vars;
loader.load(request);
}

function onComplete(e:Event):void{
trace(e.target.data);
txt.text=String(e.target.data);
}
}
}


test.php:

<?
$myVar=$_POST['myVar'];
$setVar=$myVar;
echo $setVar;
?>

У меня работает этот код. То есть, при нажатии на кнопку на сервер летит обновлённая переменная и она увеличивается. Но если перезапустить флешку, то отсчёт начнётся с нуля. Как сделать, что бы переменная на php загрузилась не сначала, а сохранилась последняя.

Добавлено через 1 минуту
Кстати, у меня мой код сильно глючит и если нажать раз 5 быстро, то они собьются и прилетит переменная чуть позже. Как это можно решить?
/Но основной вопрос про сохранение значения переменной.

kodemak
22.12.2010, 10:46
<?php
$n = $_GET['n'];
if ($n == 1){
$num = @file_get_contents('num');
$num++;
$f=fopen("num","w");
fputs($f,$num);
fclose($f);
echo '&num='.$num.'&';
}
?>

можно так, но это не совсем верно;

Lyso
22.12.2010, 10:54
Это загружает файл из текстового документа без разрешения? И помещает переменную в файл? Боюсь это мне не подходит...

Добавлено через 4 минуты
Но спасибо :)

alatar
22.12.2010, 10:58
Как сделать, что бы переменная на php загрузилась не сначала, а сохранилась последняя.
Собственно чего вы ожидали, после этого:
var chislo=0;
После загрузки флешки, загружайте сначала текущее значение переменной. А уже потом отправляйте изменения.

Lyso
22.12.2010, 11:05
Каким образом?... Ведь загрузить значение можно только через

loader.data

А как загрузить саму переменную я не знаю.

alatar
22.12.2010, 11:19
Для начала добавить в ваш пхп скрипт сохранение переменной и возможность отдать значение без сохранения.

Lyso
22.12.2010, 11:23
И как я понял это мне надо спрашивать не тут, да? Ведь это форум по ActionScript... А жаль.

alatar
22.12.2010, 11:31
Здесь вы можете спросить: "а не воспользоваться ли мне SharedObject (http://help.adobe.com/ru_RU/AS3LCR/Flash_10.0/flash/net/SharedObject.html)?".

Lyso
22.12.2010, 11:54
А не воспользоваться ли мне SharedObject?

Только подскажите как пользоваться, в хелпе слишком много терминологии.

alatar
22.12.2010, 11:57
Смотрите в справке свойство data, там есть пример.