Appeler une fonction GetUrl dans un fichier XML

Appeler une fonction GetUrl dans un fichier XML - Flash/ActionScript - Programmation

Marsh Posté le 17-11-2005 à 01:52:41    

Bonjour,
pour shématiser mon souci, j'ai une carte flash qui via un fichier xml, on peut positionner des 'points rouges' en y et x et donner des informations textuelles quand on passe la souris sur un de ces points, une boite afficher des info.
 
En image:
http://dolby.bugiweb.com/web/mapxml/mapxml.jpg
 
 
J'aimerai également donc cliquer sur un 'bouton rouges' qui ouvrira une URL, je voudrais permettre de rentrer l'url directement dans le fichier xml.
 
 
Voici le code qui appelles toutes ces fonctions:
 

Code :
  1. function shipsLoad(success)
  2. {
  3.     var i = 0;
  4.     while (i < this.childNodes.length)
  5.     {
  6.         if (this.childNodes[i].nodeName == "map-items" )
  7.         {
  8.             createObjects(this.childNodes[i]);
  9.         } // end if
  10.         i++;
  11.     } // end while
  12. } // End of the function
  13. function createObjects(itemNodes)
  14. {
  15.     //trace(itemNodes.childNodes.length);
  16.     var i = 0;
  17.     while (i < itemNodes.childNodes.length)
  18.     {
  19.         if (itemNodes.childNodes[i].nodeName == "map-item" )
  20.         {
  21.             //trace("type is: " + itemNodes.childNodes[i].attributes.type);
  22.             if (itemNodes.childNodes[i].attributes.type == "nuke" )
  23.             {
  24.                 //trace("Creating Nuke!ship" + _root.iconCount);
  25.                 _root.map.attachMovie("masterNuke", "ship" + _root.iconCount, _root.iconCount + 20);
  26.                 newShip = eval("_root.map.ship" + _root.iconCount);
  27.                 _root.iconList.push(newShip);
  28.                 newShip._xscale = 25 * getZoom(itemNodes.childNodes[i]);
  29.                 newShip._yscale = 25 * getZoom(itemNodes.childNodes[i]);
  30.             } // end if
  31.             newShip._x = getLocationX(itemNodes.childNodes[i]);
  32.             newShip._y = getLocationY(itemNodes.childNodes[i]);
  33.             newShip.description = getDescription(itemNodes.childNodes[i]);
  34.             newShip.nukeName = getNukeName(itemNodes.childNodes[i]);
  35.             newShip.locationDesc = getLocDesc(itemNodes.childNodes[i]);
  36.             _root.iconCount++;
  37.         } // end if
  38.         i++;
  39.     } // end while
  40. } // End of the function
  41. function getLocationX(itemNode)
  42. {
  43.     var i = 0;
  44.     while (i < itemNode.childNodes.length)
  45.     {
  46.         if (itemNode.childNodes[i].nodeName == "location" )
  47.         {
  48.             return(itemNode.childNodes[i].attributes.x);
  49.         } // end if
  50.         i++;
  51.     } // end while
  52. } // End of the function
  53. function getLocationY(itemNode)
  54. {
  55.     var i = 0;
  56.     while (i < itemNode.childNodes.length)
  57.     {
  58.         if (itemNode.childNodes[i].nodeName == "location" )
  59.         {
  60.             return(itemNode.childNodes[i].attributes.y);
  61.         } // end if
  62.         i++;
  63.     } // end while
  64. } // End of the function
  65. function getDescription(itemNode)
  66. {
  67.     var i = 0;
  68.     while (i < itemNode.childNodes.length)
  69.     {
  70.         if (itemNode.childNodes[i].nodeName == "description" )
  71.         {
  72.             return(itemNode.childNodes[i].firstChild.nodeValue);
  73.         } // end if
  74.         i++;
  75.     } // end while
  76. } // End of the function
  77. function getxmlurl(itemNode)
  78. {
  79.     var i = 0;
  80.     while (i < itemNode.childNodes.length)
  81.     {
  82.         if (itemNode.childNodes[i].nodeName == "url" )
  83.         {
  84.             return(itemNode.childNodes[i].firstChild.nodeValue);
  85.         } // end if
  86.         i++;
  87.     } // end while
  88. } // End of the function*/
  89. function getNukeName(itemNode)
  90. {
  91.     var i = 0;
  92.     while (i < itemNode.childNodes.length)
  93.     {
  94.         if (itemNode.childNodes[i].nodeName == "name" )
  95.         {
  96.             return(itemNode.childNodes[i].firstChild.nodeValue);
  97.         } // end if
  98.         i++;
  99.     } // end while
  100. } // End of the function
  101. function getLocDesc(itemNode)
  102. {
  103.     var i = 0;
  104.     while (i < itemNode.childNodes.length)
  105.     {
  106.         if (itemNode.childNodes[i].nodeName == "locationDesc" )
  107.         {
  108.             return(itemNode.childNodes[i].firstChild.nodeValue);
  109.         } // end if
  110.         i++;
  111.     } // end while
  112. } // End of the function
  113. shipsXML = new XML();
  114. shipsXML.onLoad = shipsLoad;
  115. shipsXML.load("ships.xml" );
  116. //trace("trying to load xml..." );
  117. stop();


 
le XML:

Code :
  1. <map-item type="nuke">
  2. <location x="86" y="-116"/>
  3. <name>Mr Andre Dupuis</name>
  4. <description>Ferme des chat sauvage eleve des cochons des rats et des legumes</description>
  5. <locationDesc> Clos del creux 17 4633 Melen - 0485/860.367</locationDesc>
  6. <url>http://www.hardware.fr/</url>
  7. <zoom>1</zoom>
  8. </map-item>


 
J'ai tenté de faire :

Code :
  1. newShip.url = getxmlurl(itemNodes.childNodes[i]);
  2. newShip.onRelease = function() {
  3. getURL(this.url, "_blank" );
  4. }


 
ou encore:

Code :
  1. onRelease = function () { getURL("itemNode", _blank); }


en dessous des fonctions newShip._x = getLocationX(itemNodes.childNodes[i]);  mais sans succes..
 
Je suis un peu perdu donc ! Comment procéder  :sweat:


Message édité par Dolby le 17-11-2005 à 02:14:30
Reply

Marsh Posté le 17-11-2005 à 01:52:41   

Reply

Marsh Posté le 17-11-2005 à 03:17:10    

Solution trouvé par Mr Mala ! :)

Reply

Marsh Posté le 17-11-2005 à 09:39:56    

fait un lien pointant sur la solution trouvé, ca pourrat aider les gens qui commencent par faire une recherche avant de poster ;)
 
EDIT:en regardant brievement il semblerait que tu ai mis ta variable d'URL entre guillemet dans ton getURL, Falsh pense donc a une chaine de caracteres et non au nom d'une variable...


Message édité par mechkurt le 17-11-2005 à 09:43:40

---------------
D3
Reply

Marsh Posté le 20-11-2005 à 03:01:09    

Non c'était pas ça le problème ...
Son .fla était on ne peut plus bordelique et il plaçait simplement son onRelease au mauvais endroit ! :p

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed