リンクをクリップボードにコピー
コピー完了
はじめて投稿いたします。
AnimateCCで制作したHTML5 Canvasの複数のコンテンツを、独自に用意した1種類共通のHTMLテンプレートでパブリッシュしています。
しかし、次の例で示す「問題の箇所」にあたるテンプレート変数がわからず、ここだけ手動で書き直す、という面倒なことをしています。
例)
var canvas, stage, exportRoot, anim_container, dom_overlay_container, fnStartAnimation;
function init() {
(略)
var comp=AdobeAn.getComposition("問題の箇所");
(略)
}
「問題の箇所」はアルファベット大文字と数字で32文字あります。
この部分にあたるテンプレート変数がもしあれば教えていただけたら有難く思います。
どうぞよろしくお願い致します。
なお、作業環境は以下の通りです。
MacOS10.11.6
Adobe AnimateCC ビルド:16.5.1.104
リンクをクリップボードにコピー
コピー完了
「問題の箇所」の文字列がどこで定められているかわかればよろしいでしょうか。パブリッシュされるJavaScript(JS)ファイルのlib.propertiesにidとして書き込まれているようです。
// library properties:
lib.properties = {
id: '問題の文字列',
リンクをクリップボードにコピー
コピー完了
ご返信大変ありがとうございます。
体調を崩しておりまして、ご挨拶遅くなり申し訳御座いません。
せっかく教えていただいたのですが、どこで定められているか、というご質問ではありません。
単純に「問題の箇所」を置き換えるテンプレート変数は存在するか、あればどのようなものか、というご質問になります。
テンプレートを使ってHTMLを出力する場合、そのファイル固有の値はテンプレート変数を入力しておくことで対応できると認識しています。ご存知でない方が本件を参照なさった場合のため一応例を下記に示します。
---------------------
■テンプレート変数の例 この例では $TITLE がテンプレート変数
原文
<script src="test.js"></script>
テンプレート変数
<script src="$TITLE.js"></script>
テンプレート編集の種類 解説ページ
Animate CC での HTML5 Canvas ドキュメントの作成
------------------------
このように、そのファイル固有の部分をテンプレート変数で置き換えておくことで、異なるファイルを同一のHTMLテンプレートでパブリッシュできる仕組みということになるのですが、
var comp=AdobeAn.getComposition("問題の箇所");
の問題の箇所だけが、なぜか各ファイル固有の値が収められているにもかかわらず、置き換えられるテンプレート変数が見当たりません。結局現在、テンプレートでパブリッシュしてから、この部分のみ手作業で入力しています。
そこで、もし"問題の箇所"を置き換えられるテンプレート変数をご存知であれば教えていただきたい、というご質問になります。
仮にそのテンプレート変数が「$COMP」というものであったのであれば、テンプレートでは、
var comp=AdobeAn.getComposition("$COMP");
と入力しておくことになるかと思います。
もしもこの例でデタラメに入力した「$COMP」に代わる、正しいテンプレート変数があるようでしたら、教えていただけると大変有り難く思います。
説明が下手で申し訳ありません。
どうぞよろしくお願いいたします。
リンクをクリップボードにコピー
コピー完了
ありがとうございます。自己解決いたしました。
知りたかったテンプレート変数は以下のものでした。
$CREATE_LOADER
上記のテンプレート変数をパブリッシュすると、以下の5行に置き換わりました。
var comp=AdobeAn.getComposition("そのファイル独自のID");
var lib=comp.getLibrary();
var loader = new createjs.LoadQueue(false);
loader.addEventListener("fileload", function(evt){handleFileLoad(evt,comp)});
loader.addEventListener("complete", function(evt){handleComplete(evt,comp)});
したがってHTMLテンプレートでは、以下のように書いておけば良いということになります。
-------------
function init() {
canvas = document.getElementById("canvas");
anim_container = document.getElementById("animation_container");
dom_overlay_container = document.getElementById("dom_overlay_container");
$CREATE_LOADER
var lib=comp.getLibrary();
loader.loadManifest(lib.properties.manifest);
}
-------------
わかってみれば簡単なことで、何が疑問なのかも理解しづらかったのではないでしょうか。
Fujio Nonaka様にはお手数をかけてしまい、大変申し訳御座いませんでした。
本件は以上で解決といたします。