【質問事項】どのような問題ですか?
ピンチイン・ピンチアウトのサンプルが動きません
【再現方法】サンプルソース、再現手順など
Chapter4 > column10 > TouchTest
を、実機で動かしてもマルチタッチに反応しない
【調べた事】
document.ontouchstart で、touches.length を
alert で表示すると 1 が表示されます。
【jsWaffleバージョン】確認したjsWaffleバージョン
1.180
【Androidのバージョン】確認したAndroidバージョン
Android OS 2.2
【機種名】
XPeria arc
【その他】
筆者の端末(Galaxy S)では、問題なくマルチタッチが行われています。
何が問題でしょうか。
念のため、プロジェクトのプロパティを表示して、Androidの項目をクリック、対応SDKをAndroid2.1以降に設定して試してみてください。
編集部でもXPeriaでチェックしてくれたので、XPeriaが問題というわけではなさそうです。
ちなみに、alert()を使うと、そこで処理が止まってしまうので、
シングルタッチの時点でダイアログが表示されてしまうでしょう。
そこで、droid.log()を使って、DDMSにデバッグ出力させてみると良いかもです。
http://d.aoikujira.com/jsWaffle/wiki/index.php?%E3%83%9E%E3%83%8B%E3%83%A5%E3%82%A2%E3%83%AB%252F%E3%83%AD%E3%82%B0%E3%81%AE%E5%87%BA%E5%8A%9B
> 念のため、プロジェクトのプロパティを表示して、Androidの項目をクリック、対応SDKを
> Android2.1以降に設定して試してみてください。
↑
ご教示いただいた事を、
TouchTestのプロパティーの
AndroidのProject Build Target の事と理解して以下を実施しました。
今までも、2.2で実施してきましたが、再度、
TouchTestのプロパティーの
AndroidのProject Build Targetを
Android 2.1-update1 APIレベル7
Android 2.2 APIレベル8
の2通りで実施しましたが、
マルチタッチに反応しません。
また、index.html の
document.ontouchstart = function (e) {
の下には、次の行を挿入して、
droid.log("ontouchstart len = " + e.touches.length);
マルチタッチをすると、
ontouchstart len = 1
が、DDMSログへ出力されます。
PS.
TouchTestプロジェクトには、
小さな黄色い▲!マークが付いていて
ディレクトリを下がっていくと、
src -> com -> kujirahand -> jsWaffle -> utils - ContactAccessor3_4.java
の8,9,10,15,28,31,34,37,38,41行に黄色▲!マーク
それと、
AndroidManifest.xml
の最初の行にも黄色▲!マーク
が付いています、何か関係ありでしょうか?
※マルチタッチを有効にして
ピンチイン・アウトが使えるアプりを作ろうとしています
何卒よろしくお願いします。
おかしいですね。
手元の Galaxy Sでは問題なく、マルチタッチできています。
他に、再現する方や思い当たる節のある方いらっしゃいますでしょうか?
ところで、マルチタッチは、WebKit(ブラウザ)の機能をそのまま利用しています。
jsWaffleのフレームワークを使わず、ソースをWebサイトに配置してみて
マルチタッチができるか確かめていただけませんでしょうか?
Webサイトではできましたが、
Aptanaのデバッグでは出来ませんでした。
トホホ、、
なぜか、動かないとのこと、とても、残念です。
同じWebKitで、同じAndroidで、アプリのときだけ、マルチタッチができないというのは何かの設定がおかしいのだと思います。
同じソースコードと思いますので、気休めですが、新規プロジェクトを作って、
念のため、以下のソースコードで試していただけますか?
添付の画像 photo.png を使って、
ピンチイン、ピンチアウトができないでしょうか?
===
<!DOCTYPE html>
<html><head><meta charset="utf-8">
<script type="text/javascript" src="jsWaffle.js"></script>
<script type="text/javascript">
window.onload = function() {
var tx_start = 0; // 初期間隔
var tx_value = 0; // 移動量
var tx_total = 0; // 移動量のトータル
document.ontouchstart = function (e) {
if (e.touches.length >= 2) { // マルチタッチされた時
tx_start = Math.abs(e.touches[0].pageX - e.touches[1].pageX);
e.preventDefault();
}
};
document.ontouchmove = function (e) {
if (e.touches.length >= 2) { // マルチタッチされた時
e.preventDefault();
var x2 = Math.abs(e.touches[0].pageX - e.touches[1].pageX);
tx_value = x2 - tx_start; // 移動量を計算
// 移動量に合わせてピンチイン/アウト処理
$("pic").width = 200 + tx_total + tx_value;
$("pic").height = 200 + tx_total + tx_value;
}
};
document.ontouchend = function(e){
tx_total += tx_value; // トータル移動量に加算
};
};
</script>
</head><body>
<img id="pic" src="photo.png"/>
</body></html>
===
http://d.aoikujira.com/jsWaffle/tasukeai/attach/85-photo.png
示していただいたソースコードで
新たなプロジェクトでやってみましたが、ダメでした。
私のPCの環境か、何かの設定がおかしいのだと思います。
PC持参で教えを請いに伺いたいところですが
それもままなりません(第一ご迷惑ですね)
ここは、一旦あきらめる事といたします。
m(__)m