2012-04-12 72 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