Actionscript 3 添加MouseEvent.CLICK到starling图像

Actionscript 3 添加MouseEvent.CLICK到starling图像,actionscript-3,apache-flex,starling-framework,Actionscript 3,Apache Flex,Starling Framework,我有一个容器,有许多带有滚动的图像,我添加了TouchEvent.TOUCH作为事件监听器,而不是MouseEvent.CLICK,因为starling不支持MouseEvent。 问题是,当我在图像之间导航时,它将侦听到TouchEvent,而我不需要这样做?是否有任何解决方案可以替代TouchEvenet 守则: private function onComplete (event:flash.events.Event):void { bitmapData = Bit

我有一个容器,有许多带有滚动的图像,我添加了
TouchEvent.TOUCH
作为事件监听器,而不是
MouseEvent.CLICK
,因为starling不支持
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
            }   
        }

    }

最好不要将事件侦听器附加到场景中的每个对象。您应该只将一个侦听器连接到舞台,然后读取触摸事件的目标属性。
这里是“Inroducing Starling”一书中的示例:

私有函数onClick(e:TouchEvent):void
{
var-touchs:Vector.=e.gettouchs(this);
单击变量:DisplayObject=e.currentTarget作为DisplayObject;
if(touchs.length==1)
{
var-touch:touch=touch[0];
如果(touch.phase==touch.phase.end)
{
跟踪(e.currentTarget,e.target);
}
}
}

在这里,
currentTarget
Stage
,而
target
将是您的图像

最好不要将事件侦听器附加到场景中的每个对象上。您应该只将一个侦听器连接到舞台,然后读取触摸事件的目标属性。
这里是“Inroducing Starling”一书中的示例:

私有函数onClick(e:TouchEvent):void
{
var-touchs:Vector.=e.gettouchs(this);
单击变量:DisplayObject=e.currentTarget作为DisplayObject;
if(touchs.length==1)
{
var-touch:touch=touch[0];
如果(touch.phase==touch.phase.end)
{
跟踪(e.currentTarget,e.target);
}
}
}

这里,
currentTarget
Stage
,而
target
将是您的图像

TouchEvent
不是
MouseEvent
!同样的
TouchEvent
也像普通的
MouseEvent
一样在浏览器中工作。我搜索并找到了这个,因为我写的是TouchEvent而不是mouseevental,对,它是“同一类”。您是否尝试了使用
阶段
的解决方案?
触摸事件
不是代替
鼠标事件
!同样的
TouchEvent
也像普通的
MouseEvent
一样在浏览器中工作。我搜索并找到了这个,因为我写的是TouchEvent而不是mouseevental,对,它是“同一类”。您是否尝试了带有
阶段的解决方案
?工作已经完成。谢谢,如果我不需要使用TouchEvent,是否有starling.events.event.TRIGGERED或MouseEvent.CLICKED这样的事件?@SameerH.Ibra始终欢迎,我建议您使用用户手册中的“starling简介”一书。它的工作已经完成。谢谢,如果我不需要使用TouchEvent,是否有starling.events.event.TRIGGERED或MouseEvent.CLICKED事件?@SameerH.Ibra始终欢迎,我建议您使用“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 );
  }
 }
}