Tôi có một Starling Sprite
mà tôi muốn nhận các sự kiện liên lạc. A đang sử dụngChạm vào các sự kiện cho không gian trống bên trong một ngôi sao đầy sao
content.addEventListener(TouchEvent.TOUCH, onTouch);
function onTouch(e:TouchEvent) {
var touch:Touch = e.getTouch(content) as Touch;
if (touch) {
//do something
}
}
Tuy nhiên, điều này chỉ hoạt động khi con của Sprite được chạm và không nằm trên khoảng trống giữa chúng. Tôi nghĩ rằng nếu tôi tạo ra một hình ảnh alpha'd và thanh bên dưới nó sau đó sẽ nhận các sự kiện liên lạc, nhưng là có một cách tốt hơn?
Tôi cũng đang suy nghĩ về việc lắng nghe cảm ứng trên sân khấu và thực hiện tương đương với hitTestPoint()
.
tôi đến với
var hitTest = (touch && content.hitTest(this.globalToLocal(new Point(touch.globalX, touch.globalY))));
Nhưng điều này dường như không làm việc, hoặc, sự kiện liên lạc chỉ làm việc khi một đứa trẻ trong những nội dung Sprite được chạm vào.
Giải pháp:
Cuối cùng tôi đã sử dụng một alpha'd Quad theo đề nghị của Cherniv
bg = new Quad(width, height);
bg.alpha = 0;
addChildAt(bg, 0);
Bạn đã thử 'isTouching()': http://doc.starling-framework.org/core/starling/events/Touch.html#isTouching()? – Cherniv