[OPenLaszlo] Afficher des boutons en x,y en fct de fichier xml

Afficher des boutons en x,y en fct de fichier xml [OPenLaszlo] - Flash/ActionScript - Programmation

Marsh Posté le 11-05-2008 à 17:16:11    

Bonjour, tout d'abord jespere que je suis dans la bonne section pour poster ma requête :aie:
 
Je suis débutant en OpenLaszlo et jai coder le code suivant d'apres le webcast mais mon but est d'afficher des basebutton avec un x et un y provenant du fichier xml
 

Code :
  1. <canvas debug="true" width="1020">
  2. <dataset src="http:resultat.xml" name="dsProduits" request="true"/>
  3. <resource name="mybutton_rsrc">
  4.     <!-- first frame MUST be the mouseup state of the button --> 
  5.     <frame src="button-up.png"/>
  6.  <!-- second frame MUST be the mouseover state of the button -->
  7.  <frame src="button-over.png"/>
  8.  <!-- third frame MUST be the mousedown state of the button -->
  9.  <frame src="button-down.png"/>
  10.  </resource>
  11.  <window name="plan">
  12.  <view name="image"  resource="plan_sup.gif"/>
  13.  <basebutton name="mybutton"  resource="mybutton_rsrc" x="20" y="20">
  14.  </basebutton>
  15.  </window>
  16. <window name="liste" title="Produits" width="200" height="150" x="${plan.x + plan.width + 10}" y="20" resizable="true">
  17.  <view>
  18.   <text onmouseover="this.setBGColor(0xBBBBFF)" onmouseout="this.setBGColor(null)">
  19.    <datapath xpath="dsProduits:/objets/objet/@nom" replication="lazy"/>
  20.    <handler name="onclick">
  21.     var details = new detailswindow(canvas);
  22.     details.datapath.setFromPointer(this.datapath);
  23.    </handler>
  24.   </text>
  25.  </view>
  26.  <scrollbar/>
  27. </window>
  28. <class name="detailswindow" extends="window" title="$path{'@nom'}" x="${liste.x}" y="${liste.y + liste.height}" resizable="true"  width="200" height="300" closeable="true">
  29.  <datapath/>
  30.  <method name="close">
  31.   bye.doStart();
  32.   this.fadeDelegate = new LzDelegate( this, "fadeWindow" );
  33.   LzTimer.addTimer( this.fadeDelegate, 3000 );
  34.  </method>
  35.  <animatorgroup name="bye" process="sequentieal" duration="1500" start="false">
  36.   <animator attribute="height" to="50"/>
  37.   <animator attribute="x" to="$path{'@x'}"/>
  38.   <animator attribute="y" to="$path{'@y'}"/>
  39.  </animatorgroup>
  40.  <method name="fadeWindow">
  41.   this.animate( "opacity", 0.0, 1000 );
  42.  </method>
  43.  <simplelayout/>
  44.  <text datapath="@prix" width="100%" multiline="true"/>
  45. </class>
  46.  
  47. </canvas>


 
mon fichier xml source étant  

Code :
  1. <?xml version="1.0" encoding="ISO-8859-1"?>
  2. <objets xmlns:dyn="http://exslt.org/dynamic">
  3. <objet x="450" y="300" nom="1664" prix="10"/>
  4. <objet x="460" y="250" nom="Kro" prix="12"/>
  5. <objet x="455" y="275" nom="Belle brasseuse" prix="5"/>
  6. <objet x="460" y="70" nom="Pastis" prix="13"/>
  7. <objet x="460" y="90" nom="Vodka" prix="8"/>
  8. <objet x="460" y="110" nom="Absinthe" prix="15"/>
  9. </objets>


 
mon pb se trouve ici

Code :
  1. <window name="plan">
  2. <view name="image"  resource="plan_sup.gif"/>
  3. <basebutton name="mybutton"  resource="mybutton_rsrc" x="20" y="20">
  4. </basebutton>
  5. </window>


 
je voudrais paramétrer le x et le y en fonction de ceux du dataset mais quand je remplace  par
 

Code :
  1. <window name="plan">
  2. <view name="image"  resource="plan_sup.gif"/> <datapath xpath="dsProduits:/objets/objet/"/>
  3. <basebutton name="mybutton"  resource="mybutton_rsrc" x="$path{'@x'}" y="$pat{'@y'}">
  4. </basebutton>
  5. </window>


cela me créer 6 windows avec 1 image et 1 boutons chacune car jai 6 elements dans mon fichier xml et ca place les boutons tous au meme endroit :-/
 

Code :
  1. <window name="plan">
  2.  <view name="image"  resource="plan_sup.gif"/>
  3.  <datapointer xpath="dsProduits:/objets/" ondata="processData()">
  4.   <method name="processData">
  5.    this.selectChild(1);
  6.    do {
  7.    <basebutton name="mybutton"  resource="mybutton_rsrc" x="$this.xpathQuery('@x')" y="$this.xpathQuery('@y')"/>
  8.     Debug.write(this.xpathQuery('@x')+this.xpathQuery('@y'));
  9.        } while (this.selectNext());
  10.   </method>
  11.  </datapointer>
  12.  </window>


 
ne marche pas non plus pourtant je parcours bien mes 6 noeuds :-/
 
bien évidement je voudrais arriver :
- dans un premier temps que mes boutons soient tous placés sur la meme window
- dans un deuxième temps, à afficher les details(ie le prix) du produit non plus en cliquant dans la liste mais en cliquant sur mon bouton
 
 
Merci d'avance j'espere avoir était assez clair :oops:


Message édité par pinpoy le 11-05-2008 à 17:46:20
Reply

Marsh Posté le 11-05-2008 à 17:16:11   

Reply

Sujets relatifs:

Leave a Replay

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