Actionscript 3 设置对象';执行“点击”事件时,将“可见”设置为“真”,然后将其设置回“假”`

Actionscript 3 设置对象';执行“点击”事件时,将“可见”设置为“真”,然后将其设置回“假”`,actionscript-3,flash,Actionscript 3,Flash,我有一个对象作为MovieClip,在我的flash时间线上有一个按钮作为button 当点击按钮时,我想将对象.visible设置为true,而当未点击按钮时,我想将其设置回false 我该怎么做 我已经尝试过这个代码,但它不会像我想要的那样工作。我只能显示对象,但无法将其隐藏 button1.addEventListener(TouchEvent.TOUCH_TAP, touchTap); function touchTap(e:TouchEvent): void { mcObj.

我有一个对象作为
MovieClip
,在我的flash时间线上有一个按钮作为
button

当点击按钮时,我想将
对象.visible
设置为true,而当未点击按钮时,我想将其设置回false

我该怎么做

我已经尝试过这个代码,但它不会像我想要的那样工作。我只能显示对象,但无法将其隐藏

button1.addEventListener(TouchEvent.TOUCH_TAP, touchTap);

function touchTap(e:TouchEvent): void {
    mcObj.visible = true;
    stage.addEventListener(TouchEvent.TOUCH_END, touchEnd);
}

function touchEnd(e:TouchEvent): void {
   mcObj.visible = false;
   stage.removeEventListener(TouchEvent.TOUCH_END, touchEnd);
}

我认为这个代码可以工作

button1.addEventListener(TouchEvent.TOUCH_BEGIN, touchTap);

function touchTap(e:TouchEvent): void {
    mcObj.visible = true;
    button1.addEventListener(TouchEvent.TOUCH_END, touchEnd);
}

function touchEnd(e:TouchEvent): void {
   mcObj.visible = false;
   button1.removeEventListener(TouchEvent.TOUCH_END, touchEnd);
}
我变了
1:
TouchEvent.轻触
TouchEvent.轻触开始


2:
stage.addEventListener
按钮1.addEventListener
我认为这个代码可以工作

button1.addEventListener(TouchEvent.TOUCH_BEGIN, touchTap);

function touchTap(e:TouchEvent): void {
    mcObj.visible = true;
    button1.addEventListener(TouchEvent.TOUCH_END, touchEnd);
}

function touchEnd(e:TouchEvent): void {
   mcObj.visible = false;
   button1.removeEventListener(TouchEvent.TOUCH_END, touchEnd);
}
我变了
1:
TouchEvent.轻触
TouchEvent.轻触开始


2:<代码> > AdvestListAudio<代码> > Butn1.AdvestListAudio//Cudio> < /P> < P>在对您的问题进行任何说明之前,让我们看一下<代码> TouChEng. ToucHyLoad ,<代码> TouChEng. TouChyEndo和 TouChEvest.ToucHtApth事件:

  • 最重要的是:
当用户第一次接触触控设备时调度

  • 最重要的是:
当用户删除与启用触摸功能的设备的联系时发送

  • 最重要的是:
用户在同一交互对象实例上提起接触点时调度,该实例上的接触是在启用触摸功能的设备上启动的

通过一些测试,我们可以看到
TouchEvent.TOUCH\u END
事件在几乎所有情况下都是在
TouchEvent.TOUCH\u-TAP
之前触发的。TOUCH\u-TAP一次(1或2毫秒),因此我们可以了解用户是否已经解除了与设备的联系(
TouchEvent.TOUCH\u-END
被触发)然后如果是在启动联系人的同一个
交互对象上(
TouchEvent.TOUCH\u点击

这就是你的代码不起作用的原因


现在,让我们来看看您的问题:您希望在用户点击按钮时显示MovieClip,在用户释放按钮时隐藏它,但时间非常短(点击时间~=300毫秒)

在这种情况下,我建议您使用带有超时的
TouchEvent.TOUCH\u BEGIN
事件侦听器来隐藏该对象,即使您的用户没有释放按钮

为此,以这个例子为例:

Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT;

btn.addEventListener(TouchEvent.TOUCH_BEGIN, on_touchBegin);
function on_touchBegin(e:TouchEvent): void 
{
    obj.visible = true;
    hide_obj();
}

function hide_obj(): void 
{
    // you can use a Timer object instead of setTimeout()
    var timeout:int = setTimeout(function(){
        clearTimeout(timeout);
        obj.visible = false;
    }, 300);    
}

希望能有所帮助。

< P>在对你的问题说任何话之前,让我们看一下<代码>触摸事件的定义。TouChyRead ,<代码> TouChEnter。TouChyEndo和 TouChEv.ToucHtApth事件:

  • 最重要的是:
当用户第一次接触触控设备时调度

  • 最重要的是:
当用户删除与启用触摸功能的设备的联系时发送

  • 最重要的是:
用户在同一交互对象实例上提起接触点时调度,该实例上的接触是在启用触摸功能的设备上启动的

通过一些测试,我们可以看到
TouchEvent.TOUCH\u END
事件在几乎所有情况下都是在
TouchEvent.TOUCH\u-TAP
之前触发的。TOUCH\u-TAP
一次(1或2毫秒),因此我们可以了解用户是否已经解除了与设备的联系(
TouchEvent.TOUCH\u-END
被触发)然后如果是在启动联系人的同一个
交互对象上(
TouchEvent.TOUCH\u点击

这就是你的代码不起作用的原因


现在,让我们来看看您的问题:您希望在用户点击按钮时显示MovieClip,在用户释放按钮时隐藏它,但时间非常短(点击时间~=300毫秒)

在这种情况下,我建议您使用带有超时的
TouchEvent.TOUCH\u BEGIN
事件侦听器来隐藏该对象,即使您的用户没有释放按钮

为此,以这个例子为例:

Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT;

btn.addEventListener(TouchEvent.TOUCH_BEGIN, on_touchBegin);
function on_touchBegin(e:TouchEvent): void 
{
    obj.visible = true;
    hide_obj();
}

function hide_obj(): void 
{
    // you can use a Timer object instead of setTimeout()
    var timeout:int = setTimeout(function(){
        clearTimeout(timeout);
        obj.visible = false;
    }, 300);    
}

希望能有所帮助。

如何更改
stage.addEventListener(TouchEvent.TOUCH\u END,touchEnd)
按钮1.添加事件列表器(TouchEvent.TOUCH\u END,touchEnd)?它向我显示相同的结果如何使用触摸开始而不是触摸点击<代码>按钮1.addEventListener(TouchEvent.TOUCH\u BEGIN,touchTap)如何更改
stage.addEventListener(TouchEvent.TOUCH_END,touchEnd)
按钮1.添加事件列表器(TouchEvent.TOUCH\u END,touchEnd)?它向我显示相同的结果如何使用触摸开始而不是触摸点击<代码>按钮1.addEventListener(TouchEvent.TOUCH\u BEGIN,touchTap)我知道它会起作用。但不像我以前想的那样。如果我使用
TOUCH\u BEGIN
TOUCH\u END
事件,我可能会长时间触摸按钮,并且对象的可视性将保持真实,直到我释放触摸。我只需要一个水龙头。@G.Chiko,这不是你想要的吗?“当点击按钮时,我想将对象设置为“可见”,然后当未点击按钮时,我想将其设置为“假”。您使用“点击”一词,但您的问题被描述为“触摸”。你想让某个东西只显示1秒(点击持续时间)还是直到你释放(触摸持续时间)或者你想切换(每次点击打开/关闭)?这有点像持续时间,我使用点击,而它与触摸不同\u开始-触摸\u结束我知道它会起作用。但不像我以前想的那样。如果我使用
TOUCH\u BEGIN
TOUCH\u END
事件,我可能会长时间触摸按钮,并且对象的可视性将保持真实,直到我释放触摸。我只需要一个水龙头。@G.Chiko,是吗