2012-04-12 68 views
0

我想創建一個使用XML加載一些數據的Flash電影。當用戶點擊屏幕時,我希望每行數據都能一個接一個顯示出來。到目前爲止,我已將所有數據添加到屏幕,但我不確定如何爲此寫入點擊機制。AS3 + XML + MouseEvent

我曾嘗試添加一個功能,讓我點擊刪除和對象在這裏看到:

muppet_name0.addEventListener(MouseEvent.CLICK, fl_ClickToKermit); 

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

但我不知道如何讓它重新出現。我如何添加一個MouseClick事件來刪除一個對象,同時添加一個新的對象?

我的文檔類遵循

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

不知怎的,我看不出問題有......請閱讀常見問題解答。 – weltraumpirat 2012-04-12 21:14:19

+0

也投票關閉,除非你提煉你的問題,你試圖添加一個事件監聽器,你有什麼嘗試,什麼是失敗?這種類型的信息將是必要的,以提供任何良好的反饋。 – shaunhusain 2012-04-12 22:21:20

+1

添加了我嘗試過的和一個問題。 – user1330210 2012-04-13 00:46:21

回答

1

我真的不知道你想做什麼,但我想你,你要尋找的是這樣的:

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

每次點擊時,您都會反轉其值alpha。當您使用visible時,DisplayObject變爲禁用狀態,因此無法點擊。通過使用alpha而不是您的DisplayObject保持啓用,但不再可見。

檢查的詳細信息的文檔:

DisplayObject.visible DisplayObject.alpha

+0

這就是我正在尋找的,但是當我添加你的代碼沒有任何改變。我仍然能夠使文本不可見,但我無法使其重新出現。 – user1330210 2012-04-13 13:54:44

+0

我改正了我的答案,以滿足您的需求 – 2012-04-13 14:02:22

+0

真棒謝謝你。我現在正在生成一些錯誤 - 74號線\t 1078:標籤必須是一個簡單的標識符。 74行\t 1084:語法錯誤:在分號前預期冒號。 第75行\t 1084:語法錯誤:預計在rightbrace之前的標識符。 - 它所指的行是:muppet_name0.alpha =(muppet_name0.alpha == 0):1? 0; } – user1330210 2012-04-13 14:26:13