PDA

Просмотр полной версии : Функция<// загрузки php. Задержка выполнения кода.


deman455
24.01.2011, 20:59
Возник не большой вопрос, на счет функции в которой выполняется загрузка php.

К примеру, сама функция вызова php:
function save(info){
var send:LoadVars = new LoadVars();
var result:LoadVars = new LoadVars();
result.onLoad = function(success) {
if (success) {
trace('load ok');
return 1;
}
}
send.uid = 1234;
send.score = info;
send.sendAndLoad("site.ru/save.php?", result, 'GET');
}

А вот сама программа и, собственно, вопрос:


trace(1);
save(2);
trace(3);
/*Дебагер:
1
3
load ok*/


Вопрос заключается в том, что бы остановить выполнение главного кода во время того как функция загружает информацию от сервера. Сама функция не статическая. Т.е. это полностью динамическая функция, любой параметр и его название, можно будет менять, в том числе и адрес куда посылка идет. Что бы не делать множество копий посылки, хотелось бы сделать одну функцию, но столкнулся с этой проблемой.

iNils
24.01.2011, 21:10
остановить выполнение главного кода Это не возможно. Загрузка происходит асинхронно выполнению кода. Надо по другому реализовывать логику выполнения кода, бить его на блоки:
import mx.utils.Delegate;
function save(info) {
var send:LoadVars = new LoadVars();
var result:LoadVars = new LoadVars();
result.onLoad = Delegate.create (this, onLoadData);
send.uid = 1234;
send.score = info;
send.sendAndLoad("site.ru/save.php?", result, 'GET');
}
function init() {
trace(1);
save(2);
}
function next() {
trace(3);
}
function onLoadData(success) {
if (success) {
trace('load ok');
next();
}
}
init();