0

これはここへの私の最初の投稿ですが、私はかなり必死です。私はググって、ググって、またググってみましたが、成功しませんでした。助けやヒントをいただければ幸いです。

私はAdobe Airアプリ(Windows用の2Dパズル/アクションHTML4 + CSS + Javascriptゲーム、埋め込みレベルエディター付き)を開発しています。実際、私のゲームはほぼ完成しており、IE9 と Chrome の両方で非常にうまく動作します。ただし、(多くの理由で) Air に移植したいので、Dreamweaver 用の Adob​​e Air Extension v.3.3 をインストールし、HTML プロジェクトから Air アプリを作成するための開始に関する Adob​​e チュートリアルに従いました。

問題なく .air ファイルを生成できますが、ゲームが最初からフリーズしているようです。私は多くのことを確認しました(すべてとは言いません)。いろいろと alert("works-check_1"); も入れています。私のコードのすべてのビットを通して、Dreamweaver ではうまく動作します (しかし遅い)...しかし、.air ファイルはフッターまですべてをロードし、2 番目のフレームを描画できるようになる前にフリーズします。この問題は、.html ファイルでマウス座標を取得するために使用している現在のスクリプト (レベル エディターでのドラッグ アンド ドロップが可能) に起因する可能性が最も高いという結論に達しました。

.html ファイルのセクションに現在あるスクリプトは次のとおりです。

<script language="JavaScript1.2">
var IE = document.all?true:false;
if (!IE) document.captureEvents(Event.MOUSEMOVE)
document.onmousemove = getMouseXY;
var tempX = 0;
var tempY = 0;
function getMouseXY(e) {
if (IE) { // grab the x-y pos.s if browser is IE
tempX = event.clientX;
tempXb = event.clientX + document.body.scrollLeft;
tempY = event.clientY + document.body.scrollTop;
}
else {  // grab the x-y pos.s if browser is NS
tempX = e.pageX;
tempY = e.pageY;
}
document.getElementById("xcoord").value = tempX;
document.getElementById("ycoord").value = tempY;
return true;
}
</script>

どうやらAdobe Airはそれが使えず壊れてしまったようです。HTML/Javascript で、X と Y のマウス座標を document.mousemove で取得できる他の簡単な方法はありますか?

4

1 に答える 1

0

気にしないでください。このコードは、Air の魅力のように機能します。次の構文を使用する必要があったため、ゲームがフリーズしていました。

setTimeout(alert('Timeout'), 10);

これの代わりに:

setTimeout("alert('Timeout')", 10);

("") は、航空セキュリティ対策によってサポートされていません。文字列よりも関数が渡されることを好みます。

フランス語のリファレンス: http://help.adobe.com/fr_FR/AIR/1.5/devappsflash/WS5b3ccc516d4fbf351e63e3d118666ade46-7f0e.html

うーん!ただし、ゲームが .air でコンパイルされて正常に動作するようになったとしても、IE9、Chrome、または Safari で直接実行するよりも動作が非常に遅くなります。ただし、Safari では、非常に高速な Javascript のパフォーマンスを得るために、[環境設定] > [セキュリティ] で [Javascript を許可する] 以外のすべてを無効にする必要がありました。Air のパフォーマンスは、これらのセキュリティ オプションを無効にする前の Safari のパフォーマンスと非常によく似ています。ちなみに、Titanium Appcelerator は、私のゲームで Adob​​e Air とまったく同じ Javascript パフォーマンス (フレームレート) を提供してくれます。私は Titanium よりも Air を好みますが、高速で組み込みの Javascript エンジンを使用してゲームをコンパイルし、他のプラットフォームに移植できるようにするために、別の IDE ソリューションを見つける必要があります....私は絶望的です! 少なくとも他のプラットフォームに移植したいIE9、Chrome、または調整された Safari と同じ速度...私の期待に応えるものは何もありません。現在、すべての IDE は、ブラウザー内で直接得られる結果よりも遅く、これは同等である必要があります :(

于 2012-05-02T06:14:42.850 に答える