2

我有一个容器有很多带有滚动的图像,我添加TouchEvent.TOUCH为事件侦听器而不是MouseEvent.CLICK,因为八哥不支持MouseEvent。问题是当我在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
            }   
        }

    }
4

1 回答 1

4

最好不要将事件侦听器附加到场景中的每个对象。您应该只将一个侦听器附加到舞台,然后读取触摸事件的target属性。
这里是“介绍 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 );
  }
 }
}

在这里,currentTarget现在Stagetarget将来都是你的形象

于 2013-05-07T09:09:07.013 回答