2012-04-12 13 views
0

Ich möchte einen Flash-Film erstellen, der XML verwendet, um einige Daten zu laden. Ich möchte, dass jede Datenzeile nacheinander angezeigt wird, wenn ein Benutzer auf den Bildschirm klickt. Bis jetzt habe ich alle meine Daten auf dem Bildschirm hinzugefügt, aber ich bin mir nicht sicher, wie man den Klick-Mechanismus dafür schreibt.AS3 + XML + MouseEvent

Ich habe versucht, eine Funktion hinzugefügt, die mir zu entfernen und Objekt klicken kann wie hier zu sehen:

muppet_name0.addEventListener(MouseEvent.CLICK, fl_ClickToKermit); 

function fl_ClickToKermit(event:MouseEvent):void 
{ 
    muppet_name0.visible = false; 
} 

Aber ich bin nicht sicher, wie es wieder zu machen. Wie kann ich ein MouseClick-Ereignis hinzufügen, das ein Objekt entfernt und gleichzeitig ein neues Objekt hinzufügt?

Meine Dokumentenklasse Folgt

package { 

import flash.display.MovieClip; 
import flash.text.TextField; 
    import flash.events.MouseEvent; 

public class MuppetsDoc extends MovieClip { 

    public var myData:XML = <data> 
     <item> 
      <a>Kermit the Frog</a> 
      <b>Jim Henson</b> 
      <c>1955</c> 
     </item> 
     <item> 
      <a>Miss Piggy</a> 
      <b>Frank Oz</b> 
      <c>1974</c> 
     </item> 
     <item> 
      <a>Animal</a> 
      <b>Frank Oz</b> 
      <c>1975</c> 
     </item> 

     <item> 
      <a>The Swedish Chef</a> 
      <b>Jim Henson/Frank Oz</b> 
      <c>1975</c> 
     </item> 


    </data>; 




    public function MuppetsDoc() { 


     // constructor code 
     //trace(myData); 
     //muppets_txt.text = myData.item[2].a.length(); 
     var aTxt:String = myData.item[2].a.text(); 
     muppet_name0.appendText(myData.item[0].a.text()); 

     muppet_puppet0.appendText(myData.item[0].b.text()); 


     muppet_year0.appendText(myData.item[0].c.text()); 

     muppet_name1.appendText(myData.item[1].a.text()); 

     muppet_puppet1.appendText(myData.item[1].b.text()); 


     muppet_year1.appendText(myData.item[1].c.text()); 

     muppet_name2.appendText(myData.item[2].a.text()); 

     muppet_puppet2.appendText(myData.item[2].b.text()); 


     muppet_year2.appendText(myData.item[2].c.text()); 

     muppet_name3.appendText(myData.item[3].a.text()); 

     muppet_puppet3.appendText(myData.item[3].b.text()); 


     muppet_year3.appendText(myData.item[3].c.text()); 





    } 
} 

} 
+0

Irgendwie scheitere ich eine Frage zu sehen ... Lesen Sie bitte die FAQ. – weltraumpirat

+0

Auch gewählt, um zu schließen, es sei denn, Sie verfeinern Ihre Frage, was versuchen Sie einen Ereignis-Listener hinzufügen, was haben Sie versucht, was scheitert? Diese Art von Informationen wird notwendig sein, um ein gutes Feedback zu geben. – shaunhusain

+1

Hinzugefügt, was ich versucht habe und eine Frage. – user1330210

Antwort

1

Ich bin nicht wirklich sicher, was Sie versuchen zu tun, aber ich denke, Sie, was Sie suchen, ist so etwas wie dieses:

function fl_ClickToKermit(event:MouseEvent):void 
{ 
    muppet_name0.alpha = (muppet_name0.alpha == 0) : 1 ? 0; 
} 

Jedes Mal wenn Sie klicken, invertieren Sie den alpha Wert. Wenn Sie visible verwenden, wird DisplayObject deaktiviert und kann nicht mehr angeklickt werden. Wenn Sie stattdessen alpha verwenden, bleibt Ihre DisplayObject aktiviert, ist aber nicht mehr sichtbar.

Überprüfen Sie die Dokumentation für weitere Informationen:

DisplayObject.visible DisplayObject.alpha

+0

Das ist, was ich suche, aber wenn ich deinen Code hinzugefügt habe nichts geändert. Ich bin immer noch in der Lage, den Text unsichtbar zu machen, aber ich kann ihn nicht wieder erscheinen lassen. – user1330210

+0

Ich korrigierte meine Antwort auf Ihre Bedürfnisse –

+0

Super danke. Ich erzeuge jetzt einige Fehler obwohl - Linie 74 \t 1078: Etikett muss ein einfacher Bezeichner sein. Zeile 74 \t 1084: Syntaxfehler: Doppelpunkt vor Semikolon erwartet. Zeile 75 \t 1084: Syntaxfehler: Erwartete Kennung vor rightbrace. - Die Zeilen, auf die es sich bezieht, sind: muppet_name0.alpha = (muppet_name0.alpha == 0): 1? 0; } – user1330210