1

したがって、jQuerys $.getScript() を介して Edge アニメーションを取得しようとしています。これは、dataType: script で $.ajax を呼び出すのと同じです。

script タグを使用してスクリプトを含めると正常に動作しますが、$.getScript() を使用してスクリプトを読み込んで実行しようとしても何も起こりません。(エラーは発生せず、スクリプトとサブスクリプトは正常にロードされますが、何も起こりません。)

誰もこれを試したことがありますか?Adobe は page_a_edgePreload.js で yepnope を使用しているため、AJAX 経由での読み込みに問題があると思われます。

テスト目的で、Adobe Edge から見つけた簡単な例を使用しました。ローカルで試してみたい場合は、エディターを開き、以下を wrapper.html ファイルに保存します。

<!DOCTYPE html>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=utf-8'>
<title>Edge always wanted to be a Wrapper</title>
<style>
    .edgeLoad-PAGE_A { display:none; }
</style>
<script src="edge_includes/jquery-1.7.1.min.js"></script>
</head>
<body style="margin:0;padding:0;">
<H1>WRAPPER.HTML</H1>

<div id="content" class="PAGE_A">
   <p>EDGE animation composition should appear beneath me!</p>
</div>

<script type="text/javascript">
$.getScript("page_a_edgePreload.js", function(data, textStatus, jqxhr) {
   //console.log(data); //data returned
   console.log(textStatus); //success
   console.log(jqxhr.status); //200
   console.log('Load was performed.');
});
</script>
  <!--uncomment script below to see that it works if included regulary -->
<!--<script src="page_a_edgePreload.js"></script>-->
</body>
</html>

次に、Adobe からサンプルの .zip ファイルをダウンロードします: http://blogs.adobe.com/edge/files/2012/05/an15BootStrapExample.zip

以下を wrapper.html と同じフォルダーに抽出します。

  1. edge_includes フォルダー
  2. page_a_edge.js
  3. page_a_edgeActions.js
  4. page_a_edgePreload.js

編集

わかりましたので、Alex が提案したように、edgePreloader.js を経由せずにファイルを読み込んでみました。AdobeEdge にアクセスできますが、スクリプトを正常に読み込んだ後にコンポジションを書き出すと、undefined が返されます。

var comp = window.AdobeEdge.getComposition("PAGE_A");
var stage = comp.getStage();
console.log("Stage: " + stage);

(私も setTimeout() 関数でこれを試しました - それでも同じ結果です)

<script src="..edgePreloader.js"></script>通常のタグにスクリプトを含めると、次のようにうまく動作します

 setTimeout(function() {
  // Try getting the edge composition after 2 seconds
    var comp = window.AdobeEdge.getComposition("PAGE_A");
    var stage = comp.getStage();
    console.log("Stage: " + stage);
  }, 2000);

Adobe が edgePreload.js でクロージャーを使用していることに気付きました。このクロージャー内に edge.1.5.0.js をロードする必要があるようです。私は今、この閉鎖を機能させるために不可欠なイベントと機能を理解しようとしています。

4

2 に答える 2

0

私は JavaScript の専門家ではありませんが、Edge Animate を同じ Web サイトで複数回使用したときに発生した問題は、少なくとも同様のようです。たぶん、私が見つけたリンクと私が使用している次のリンクで少し貢献できるかもしれません: http://www.tricedesigns.com/2012/07/12/using-adobe-edge-animations-as-components/作業 (一部) はここにあります: Adob​​e Edge の preload.js ファイルが jqueryをロードしないようにする

于 2013-12-28T08:20:26.993 に答える