質問

var tmpDoc = fl.createDocument();
/*..some logic...*/
tmpDoc.addItem({x:0,y:0},item);

私のJSFLには上記のコードがあります。
そして、3行目では、ダイアログボックスを取得します。
タイトルがあります:「図書館の競合を解決」
2つのラジオボタンオプション:「交換」、「交換しない」
2つのボタン:「OK」、「キャンセル」

このダイアログボックスのため、手動で監視する必要があります
スクリプトの実行とボタンをクリックします。

どちらかをしたい:
1.この種のダイアログボックスを完全に抑制します。
2.または、この種のダイアログにデフォルトオプションをプログラム的に提供します。

JSFLでどうすればよいですか?

役に立ちましたか?

解決

ライブラリを使用してライブラリに追加する前に、アイテムが存在するかどうかを確認することができます itemexists() 働き:

var doc = fl.getDocumentDOM();
var lib = doc.library;
//check if the item already exists first, if so, keep count of symbols with the same name, append random, etc.
if(!lib.itemExists('item')) lib.addNewItem('movie clip','item');
else                        lib.addNewItem('movie clip','item'+Math.random());

Hth

他のヒント

私はこれを回避することができました。トリックは、新しいアイテムを追加すると、ライブラリフォルダーのどこかに「同一の」アイテムがある場合でも、ライブラリの最上位レベルに着地し、そこで競合を探すことです。

また、JSFL(Library.MovetOfolder)を使用してライブラリアイテムをフォルダー内の同じアイテムの場所に移動すると、アイテムが交換され、競合ダイアログが表示されません。

  1. 可能であれば、必要なライブラリアイテムをライブラリの上部レベルからフォルダーに手動で移動します。これは一度だけ行われ、ライブラリ構造の永続的な変更です。
  2. スクリプトの時点で、各アイテムをドキュメントに追加するときに、library.movetofolder(folderpath、itempath、true)を呼び出します。
  3. これにより、フォルダ内のアイテムを上書きし、プロンプトをスキップします

あなたの正確なアプローチはあなたのニーズによって異なるかもしれませんが、重要なのは、あなたが追加している間、ライブラリの上部にアイテムを持っていないことです。最初に他の場所に移動します。

通常のように、フラッシュのために後方に曲げてください!お役に立てれば。

PS、これはライブラリにコンポーネントを追加するためにも機能します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top