向Flipview中的img控件添加了MSGesture的手势事件,但是始终无法捕获消息。具体代码如下:
function ready() {
var flipview = element.querySelector("#picView");.winControl;
WinJS.UI.setOptions(flipview, {
itemTemplate: flipRender,
itemDataSource: dataSource,
onpagecompleted: flipPagecompleted
});
.....
}
function flipRender(){
var element = document.createElement("div");
element.className = "picViewTemplate";
WinJS.Utilities.setInnerHTMLUnsafe(element, "<img /><video controls='controls'/><h2>...</h2>");
var img = element.querySelector("img");
var video = element.querySelector("video");
video.style.display = "none";
var title = element.querySelector("h2");
title.className = "picNameTemplate";
// set the gesture event handlers
img.addEventListener("MSPointerDown", onPointerDown, false);
img.addEventListener("MSPointerUp", onPointerUp, false);
img.addEventListener("MSPointerMove", onPointerMove, false);
img.addEventListener("MSGestureStart", onGestureStart, false);
img.addEventListener("MSGestureChange", onGestureChange, false);
img.addEventListener("MSGestureEnd", onGestureEnd, false);
img.addEventListener("MSInertiaStart", insertiaStart, false);
var targetGesture = new MSGesture();
targetGesture.target = img;
img.gesture = targetGesture;
.....
}
function onPointerDown(e) {
if (e.currentTarget.gesture.target == null)
e.currentTarget.gesture.target = e.currentTarget;
try {
e.currentTarget.gesture.addPointer(e.pointerId);
}
catch (e) { }
}
function onPointerUp(e) {
}
function onPointerMove(e) {
if (e.currentTarget.gesture.target == null)
e.currentTarget.gesture.target = e.currentTarget;
try {
var pps = e.getIntermediatePoints(e.target);
e.currentTarget.gesture.processMoveEvents(pps);
}
catch (e) { }
}
function onGestureStart(e) {
var test = e;
}
function onGestureChange(e) {
}
function onGestureEnd(e) {
}
function insertiaStart(event) {
}
能够跟到onPointerDown的消息,但是onGestureStart, onGestureChange, onGestureEnd以及insertiaStart都收不到。请假如何使Flipview中的控件相应手势消息。谢谢!