Извините, но желать, чтобы это работало таким образом, просто неправильно.У вас нет гарантии, что этот абсурдный цикл сработает, потому что он может легко завершиться до того, как сработает ваша операция загрузки.Кроме того, наличие встроенной функции в вашем обработчике событий считается плохой практикой.
Правильный подход к этому состоит в том, чтобы сделать Login классом и прослушивателем события, выходящего из него, чтобы заполнить текстовое поле..
Вот как вы могли бы написать Логин как класс:
package {
import flash.events.*;
import flash.net.*;
public class Login extends EventDispatcher
{
public function Login(username:String, password:String):void
{
var loader:URLLoader = new URLLoader();
var request:URLRequest = new URLRequest('http://localhost/hosting/index.php');
request.method = URLRequestMethod.POST;
var variables:URLVariables = new URLVariables();
variables.username = username;
variables.password = password;
request.data = variables;
loader.addEventListener(Event.COMPLETE, loadCompleteHandler);
loader.load(request);
}
private function loadCompleteHander(evt:Event):void
{
// set the event on out of the class
dispatchEvent(evt);
}
}
}
Итак, вы бы использовали это так:
var login:Login = new Login('irakli','password1');
login.addEventListener(Event.COMPLETE,setTheText);
function setTheText(evt:Event):void
{
Label1.text = evt.target.data;
}
Конечно, если вы неЕсли вы не хотите, чтобы в вашем mxml были слушатели (и я не могу понять, почему это так), то я думаю, что вашим лучшим подходом было бы передать целевой textField в вашу функцию Login и позволить ему устанавливать текст во встроенном обработчике.Что-то вроде:
Login('irakli','password1',Label1);
main.as
// ActionScript file
import flash.events.*;
import flash.net.*;
import flash.text.TextField
var targetTF:TextField;
function Login(username:String, password:String,textField:TextField){
targetTF = textField;
var loader:URLLoader = new URLLoader();
var request:URLRequest = new URLRequest('http://localhost/hosting/index.php');
request.method = URLRequestMethod.POST;
var variables:URLVariables = new URLVariables();
variables.username = username;
variables.password = password;
request.data = variables;
//handlers
loader.addEventListener(Event.COMPLETE, function(e:Event):void{
var loader:URLLoader = URLLoader(e.target);
targetTF.text = loader.data;
});
loader.load(request);
}