Forum de discussion
Forum « Flash et Shockwave » (archives)
double chargement d'XML
Envoyé: 29 novembre 2005, 20h46 par popo
Un flash me donne du fil à retordre...
Le code est censé faire ceci ;
1- on récupère le nom du SWF (qui est un prénom)
var str = _url;
//en local
endswf = str.lastIndexOf(".swf");
pos1 = str.lastIndexOf("/");
pos2 = str.lastIndexOf("\\");
nom_copine = str.substring(math.max(pos1,pos2)+1,endswf);
2-on recherche dans un premier fichier XML des infos récurrente au prénom (l'adresse du fichier XML à charger et un texte (=commentaire) )
var XML_file = new XML(this);
XML_file.ignoreWhite = true;
XML_file.onLoad = function(success)
{if (success)
{if (this.loaded && this.hasChildNodes)
{
if (this.firstChild.nodeName.toLowerCase() == "content")
{ var nm = this.firstChild.childNodes;
var j = 0;
var ii = -1;
var max_ligne = 5;
for ( var i = 0; i<=nm.length; i++)
{//trace (">"+nm[i].attributes.name+"<");
if (nm[i].nodeName == "serie" && nm[i].attributes.name == nom_copine)
{ //trace("trouve");
Field_commentaire = nm[i].attributes.commentaire;
Field_xml = nm[i].attributes.xml;
}
}
}
}}
3-on affiche le nom de la copine (ceci fonctionne
//remmplissage des champs titre et commentaires
nomcopine = nom_copine;
4-on affiche le commentaire dans le champs (ca c marche pas !)
myGallery.imageText = Field_commentaire;
trace ("fichier xml correspondant:"+Field_xml);
5-on charge le fichier XML correspondant
// --::[ 3. load and parse XML ]::-- //
menu_items_xml = new XML();
menu_items_xml._tl = this;
menu_items_xml.ignoreWhite = true;
menu_items_xml.onLoad = parse;
//------------ ce chargement ne se fait pas !!!!!
menu_items_xml.load(Field_xml);
//------------------------------------------------
//parse code from xml file
function parse(success){
if(!success)
break;
var root = this.firstChild;
var n = root.childNodes.length;
var m = this._tl.menu_cb;
for (var i = 0; i < n; i++){
m.addItem(root.childNodes[i].attributes.title,root.childNodes[i].firstChild);
}
m.setChangeHandler('cb_handler', this._tl)
// --::[ 4. attach the gallery ]::-- //
g1 = this._tl.attachMovie("FGallerySymbol","myGallery",10,{_x:0, _y:0});
g1.setTnStageSide('left');
g1.setColumns(2);
g1.setTnSize(84, 84);
g1.setSize(800,600); //616/300
g1.setTnTitleStyle('title'); // can be 'name' or 'title'
//select first item from combo/listbox
m.setSelectedIndex(0);
}
// --::[ 5. set up changehandler for combo/listbox ]::-- //
function cb_handler(cb){
//get data from selected item
var tdata = cb.getSelectedItem().data;
//make xml node for gallery - IMPORTANT
var menu_data_xml = new XML([tdata]);
//set xml node
g1.setXMLFile(menu_data_xml);
}
// :--:[6. end combo/listbox code]::--
// a variation of this code and the v1.3 component
// are currently running http://www.mr10.net...
stop();
};
XML_file.load("cops.xml");
Enfin bref, le chargement se fait pas, et le commentaire ne s'affiche pas... je sais pas trop quoi faire après avoir tatouillé à droite et à gauche... si une ame charitable voulait bien m'aider !
Cordialement
Réponses
|