5

AIR アプリケーションで、jQuery を使用して HTML 要素をアニメーション化したいと考えています。グローバル HTMLLoader でアニメーションを実行しようとすると、問題はありません。ただし、「セカンダリ」HTMLLoader (つまり、元のドキュメントによって開かれたもの) の要素をアニメーション化しようとすると問題が発生します。

アニメーションはスムーズではありません。マウスを動かしても「ステップ」するだけです。アニメーション化されたプロパティ ( topleftなど) は引き続き更新されます。マウスを動かさない限り、表示されません。したがって、マウスを動かしていない場合、アニメーションは開始状態と終了状態の間の遷移を確認せずに完了します。

アニメーションの種類は重要ではないようです。コードを次のように簡略化しました。

var loader;

$(function() {
    loader = new air.HTMLLoader();
    loader.addEventListener(air.Event.COMPLETE, start);
    window.htmlLoader.stage.addChild(loader);
    loader.load(new air.URLRequest('sandbox2.html'));
});

function start() {
    loader.width = loader.window.document.width;
    loader.height = loader.window.document.height;
    $('.task', loader.window.document).click(function() {
        $(this).animate({ backgroundColor: '#c00' }, 1000);
    });
}

同等の HTML/JS を Firefox と Safari の両方に読み込んでみましたが、問題ありませんでした。Mac OS X 10.5 を実行しています。

何か案は?ありがとう!

4

3 に答える 3

5

AIR は Safari や Chrome に似ています。AIR は Webkit を使用しており、Webkit バージョンでは Safari や Chrome よりも少し遅れています。それらがどのように機能するかがわかりますか?

AIR で jQuery を使用したことはありますが、AIR で animate メソッドを使用したことはないと思います。

また、色に関するものなのか、絞り込んでみてください(何のことか想像できませんが)。色ではなく高さなどを試してください。

また、なぜ noconflict を使用しなければならなかったのですか? 別のライブラリをロードしていますか? 私はそれをしなければならなかったことを覚えていません。

于 2009-06-11T02:17:31.290 に答える
1

Safari では正しく動作するが、Adobe AIR では動作しない場合は、アプリケーション サンドボックス (Adobe AIR のデフォルトですが制限された領域) 内で実行されている jquery アプリにセキュリティ上の問題があるように見えます。非アプリケーション サンドボックスを作成し、そこでアプリを実行して、これがセキュリティ上の問題であるかどうかを確認してください。非アプリケーション サンドボックスは、ブラウザーとまったく同じように機能する必要があります。http://labs.adobe.com/wiki/index.php/AIR:HTML_Security_FAQ

アプリケーション セキュリティ サンドボックスのコンテンツとは異なり、非アプリケーション セキュリティ サンドボックスの JavaScript コンテンツは eval() 関数を呼び出して、動的に生成されたコードをいつでも実行できます。ただし、非アプリケーション セキュリティ サンドボックスの JavaScript には制限があります。ただし、これらの制限は、一般的なブラウザーの制限を反映しています。

アプリケーション以外のサンドボックスは、iframe を使用して簡単に作成できます。

于 2009-06-21T09:36:51.713 に答える