PDA

Просмотр полной версии : помогите с классом


screamge
06.02.2007, 20:51
пишу...



class Gate {
var date:String;
var game1:String;
var game2:String;

function loadX(init:Number) {
var myXML:XML = new XML();
myXML.ignoreWhite = true;
myXML.load("textlib.xml");
myXML.onLoad = function(init:Number) {
var games = myXML.firstChild.firstChild.firstChild;
this.date = games.childNodes[1].attributes._date;
};
}
}



хочу...что б из функции loadX передавалосб значение переменной date, объявленной в начале класса...и вот никак не получаятся

lowka
06.02.2007, 21:01
this у вас указывает на myXML. Используйте Delegate для избежания подобных проблем.

import mx.utils.Delegate;

class Gate {
var date:String;
var game1:String;
var game2:String;

function loadX(init:Number) {
var myXML:XML = new XML();
myXML.ignoreWhite = true;
myXML.onLoad = Delegate.create(this, this.onLoad);
myXML.load("textlib.xml");
}

function onLoad(success:Boolean) {//зачем здесь было Number? (+хотя вы все равно не проверяете...)
var games = myXML.firstChild.firstChild.firstChild;
this.date = games.childNode[1].attributes._date;
};

}

etc
06.02.2007, 21:13
import mx.utils.Delegate;

class Gate {
private var date:String;
private var game1:String;
private var game2:String;
private var myXML:XML;

public function Gate() {

}

public function loadX():Void {
this.myXML = new XML();
this.myXML.ignoreWhite = true;
this.myXML.onLoad = Delegate.create(this, this.loadHandler);
this.myXML.load("textlib.xml");
}

private function loadHandler(success:Boolean):Void {
var games:XMLNode = this.myXML.firstChild.firstChild.firstChild;
this.date = games.childNode[1].attributes['_date'];
};

}

screamge
06.02.2007, 21:21
спасибо...