PDA

Volledige versie bekijken : MC aansturen vanuit XML onLoad


FredericCox
%Europe/Berlin %838 %2005, 21:07
function ViewLeagueDetails(){

trace(_global.CurrentLeagueViewID)

LeagueDetails = new XML();
urlString = "http://www.nastjaceh.com/Hattrick2Day/xml.php?page=leagueDetails.asp&outputType=XML&actionType=view&leagueLevelUnitID=" + _global.CurrentLeagueViewID
trace(urlString)
LeagueDetails.load(urlString)
LeagueDetails.ignoreWhite = true
LeagueDetails._scope = this
LeagueDetails.onLoad = getLeagueDetails

function getLeagueDetails(success){

Team1Data = LeagueDetails.firstChild.childNodes[11].childNodes
Team2Data = LeagueDetails.firstChild.childNodes[12].childNodes
Team3Data = LeagueDetails.firstChild.childNodes[13].childNodes
Team4Data = LeagueDetails.firstChild.childNodes[14].childNodes
Team5Data = LeagueDetails.firstChild.childNodes[15].childNodes
Team6Data = LeagueDetails.firstChild.childNodes[16].childNodes
Team7Data = LeagueDetails.firstChild.childNodes[17].childNodes
Team8Data = LeagueDetails.firstChild.childNodes[18].childNodes

//For each team output details
for(i=1;i<9;i++){
trace(i)
_scope["Team" + i].visible = false
}//end for
}


}

Ik heb _scope gebruikt en this maar ik krijg de MC Team1 niet aangestuurd...

DieterStruik
%Europe/Berlin %997 %2005, 00:56
LeagueDetails._scope = this

Ik vraag mij af of dit wel werkt. Uit jouw voorbeeld kan ik namelijk niet afleiden dat 'this' refereert naar een MovieClip. Misschien is het verstandig om dat eens hardcoded
neer te zetten om welke MovieClip de _scope nu draait. Trace het ff.

Team1Data = LeagueDetails.firstChild.childNodes[11].childNodes
Team2Data = LeagueDetails.firstChild.childNodes[12].childNodes
Team3Data = LeagueDetails.firstChild.childNodes[13].childNodes
Team4Data = LeagueDetails.firstChild.childNodes[14].childNodes
Team5Data = LeagueDetails.firstChild.childNodes[15].childNodes
Team6Data = LeagueDetails.firstChild.childNodes[16].childNodes
Team7Data = LeagueDetails.firstChild.childNodes[17].childNodes
Team8Data = LeagueDetails.firstChild.childNodes[18].childNodes

//For each team output details
for(i=1;i<9;i++){
trace(i)
_scope["Team" + i].visible = false
}//end for

Iets anders over deze code, waarom lus je niet meteen door die childnodes heen. Lijkt mij in de eerste instantie een veel mooiere en snellere oplossing.

for( var i = 1, var n = 11; i < 9; i++, n++ )
{
_scope['Team' + i +'Data'] = LeagueDetails.firstChild.childNodes[n].childNodes;
_scope['Team' + i].visible = false;
}

FredericCox
%Europe/Berlin %567 %2005, 14:36
Ik vraag mij af of dit wel werkt. Uit jouw voorbeeld kan ik namelijk niet afleiden dat 'this' refereert naar een MovieClip. Misschien is het verstandig om dat eens hardcoded
neer te zetten om welke MovieClip de _scope nu draait. Trace het ff.



Iets anders over deze code, waarom lus je niet meteen door die childnodes heen. Lijkt mij in de eerste instantie een veel mooiere en snellere oplossing.

for( var i = 1, var n = 11; i < 9; i++, n++ )
{
_scope['Team' + i +'Data'] = LeagueDetails.firstChild.childNodes[n].childNodes;
_scope['Team' + i].visible = false;
}

Die code werkt niet, wel als ik n weglaat en tss die childNodes [10+i] doe dan wel

maar die scope werkt echt niet...

Folkert
%Europe/Berlin %594 %2005, 15:15
en als je nu gewoon delegate gebruikt ;) en de tweede method even uit de eerste haalt. (niet getest dit script)

import mx.utils.Delegate;
function ViewLeagueDetails(){

trace(_global.CurrentLeagueViewID)

LeagueDetails = new XML();
urlString = "http://www.nastjaceh.com/Hattrick2Day/xml.php?page=leagueDetails.asp&outputType=XML&actionType=view&leagueLevelUnitID=" + _global.CurrentLeagueViewID;
trace(urlString);
LeagueDetails.ignoreWhite = true;
LeagueDetails.onLoad = Delegate.create(this, getLeagueDetails);
LeagueDetails.load(urlString);

}

function getLeagueDetails(success){

Team1Data = LeagueDetails.firstChild.childNodes[11].childNodes;
Team2Data = LeagueDetails.firstChild.childNodes[12].childNodes;
Team3Data = LeagueDetails.firstChild.childNodes[13].childNodes;
Team4Data = LeagueDetails.firstChild.childNodes[14].childNodes;
Team5Data = LeagueDetails.firstChild.childNodes[15].childNodes;
Team6Data = LeagueDetails.firstChild.childNodes[16].childNodes;
Team7Data = LeagueDetails.firstChild.childNodes[17].childNodes;
Team8Data = LeagueDetails.firstChild.childNodes[18].childNodes;

//For each team output details
for(i=1;i<9;i++){
trace(i);
this["Team" + i].visible = false;
}//end for
}
Verschil zit hem in de functies apart zetten, de onLoad VOOR de load gezet, en de scope vervangen met this (daar wellicht is parent of _level0 of dergelijks gewenst daar, afhankelijk van wat je waar hebt staan verder. en gebruik even wat ; tekens vaker

FredericCox
%Europe/Berlin %602 %2005, 15:27
Gaat dit niet zonder delegate?

Hij doet alles goed behalve movieclips aanspreken vanuit een xml.onload