Когда вызывается ваш обработчик onLoad, он вызывается так, как если бы он был функцией-членом экземпляра LoadVars, а не вашего пользовательского экземпляра.
Есть несколько способов обойти это, один из них - использовать Delegate.create () для создания функции, которая будет работать, как предполагалось, например:
import mx.utils.Delegate;
class user {
var lastname:String;
var ontvang:LoadVars;
function user(in_ID:Number){
ontvang = new LoadVars();
var zend:LoadVars = new LoadVars();
zend.ID = in_ID;
ontvang.onLoad = Delegate.create(this, onLoad);
zend.sendAndLoad("http://localhost/Services/getUser.php", ontvang, "POST");
};
}
function onLoad(success:Boolean) : Void
{
if (success) {
lastname = ontvang.lastname;
} else {
lastname = 'error';
}
}
}
Не забывайте, что загрузка асинхронная - когда вы создаете один из ваших пользовательских объектов, переменные-члены не будут сразу доступны. Вам, возможно, потребуется сделать так, чтобы ваш пользовательский объект мог сигнализировать о своей готовности во многом так же, как это делает LoadVars (например, с помощью функции обратного вызова, предоставляемой вызывающей стороной), чтобы ваше приложение управлялось этими асинхронными событиями.