【问题标题】:AS3 + XML + MouseEventAS3 + XML + 鼠标事件
【发布时间】:2012-04-12 20:56:20
【问题描述】:

我想创建一个使用 XML 加载一些数据的 Flash 电影。当用户点击屏幕时,我希望每一行数据一个接一个地出现。到目前为止,我已将所有数据添加到屏幕上,但我不确定如何为此编写点击机制。

我尝试添加一个功能,让我可以点击删除和对象,如下所示:

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());





    }
}

}

【问题讨论】:

  • 不知何故我看不到问题...请阅读常见问题解答。
  • 也投票关闭,除非您改进您的问题,您尝试添加事件侦听器到什么,您尝试了什么,什么失败了?为了提供任何好的反馈,这种类型的信息是必要的。
  • 添加了我尝试过的内容和一个问题。

标签: xml actionscript-3 actionscript flash-cs5


【解决方案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

【讨论】:

  • 这是我正在寻找的,但是当我添加您的代码时,没有任何改变。我仍然可以使文本不可见,但无法让它重新出现。
  • 太棒了,谢谢。我现在产生了一些错误——第 74 1078 行:标签必须是一个简单的标识符。第 74 1084 行:语法错误:在分号之前需要冒号。第 75 1084 行:语法错误:在右大括号之前需要标识符。 - 它所指的行是:muppet_name0.alpha = (muppet_name0.alpha == 0) : 1 ? 0; }
  • rvmook 发布的代码没有任何问题。检查您的其他代码是否有错误。
猜你喜欢
  • 2011-07-19
  • 1970-01-01
  • 1970-01-01
  • 2014-12-14
  • 2013-12-21
  • 1970-01-01
  • 2017-06-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多