actionscript-3 - 将 MouseEvent.CLICK 添加到八哥图像

标签 actionscript-3 apache-flex starling-framework

我有一个容器,其中有许多带有滚动的图像,我添加 TouchEvent.TOUCH 作为事件监听器,而不是 MouseEvent.CLICK ,因为 starling 不支持 鼠标事件。 问题是当我在图像之间导航时,它会监听 TouchEvent 而我不需要这个?有没有替代 TouchEvenet 的解决方案?

代码:

private function onComplete (event:flash.events.Event):void
    {
        bitmapData = Bitmap(LoaderInfo(event.target).content).bitmapData;
        var newImage:Image = Image.fromBitmap(Bitmap(LoaderInfo(event.target).content));
        newImage.height = 154;
        newImage.width = 180;
        addChild(newImage);
        newImage.addEventListener(starling.events.TouchEvent.TOUCH,image_clickHandler);
    }
    private function image_clickHandler(event:starling.events.TouchEvent):void
    {
        var touch:Touch = event.getTouch(stage);
        if (touch != null)
        {
            if (touch.phase == TouchPhase.BEGAN)
            {
                //some code
            }   
        }

    }

最佳答案

最好不要将事件监听器附加到场景中的每个对象。您应该仅将一个监听器附加到舞台,然后读取触摸事件的target属性。
以下是“Inroducing Starling”书中的示例:

private function onClick(e:TouchEvent):void
{
 var touches:Vector.<Touch> = e.getTouches(this);
 var clicked:DisplayObject = e.currentTarget as DisplayObject;
 if ( touches.length == 1 )
 {
  var touch:Touch = touches[0];   
  if ( touch.phase == TouchPhase.ENDED )
  {
   trace ( e.currentTarget, e.target );
  }
 }
}

这里,currentTargetStagetarget将是您的图像

关于actionscript-3 - 将 MouseEvent.CLICK 添加到八哥图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16414878/

相关文章:

apache-flex - 更好地进行 FlashDevelop

actionscript-3 - 在AS3中将符号添加到阶段出现1046错误

apache-flex - 在Flex应用程序中实现快捷键的问题

actionscript-3 - Starling MovieClip 帧不适合 2048。一个 MC 有多个 TextureAtlas?

actionscript-3 - 将数据从 Flash 发送到 Starling 类

actionscript-3 - 仅使用代码AS3创建一个按钮

flash - 检查值是否为数字

apache-flex - Flex 图形 Assets : SWF or SWC?

apache-flex - 是否所有 child 都必须在 ItemRenderer 的 createChildren 函数上创建?

android - 使用 starling 缩放 Android 设备会导致一些布局问题