Item.activate() - [レンダー乙女とか]
[レンダー乙女とか]
プロジェクトアイテムにactivate()メソッドを書いてみました
コールするとそのアイテムをアクティブアイテムにします。その際選択されていた他のアイテムの選択はすべて解除されます。
プロジェクトウインドウ上でひとつだけ選択状態のアイテムがアクティブアイテムになるのを利用しているので、他の選択を保持したまま特定のアイテムをアクティブにはできません。
一旦プロジェクトウインドウを閉じて再度開くことでウインドウにフォーカスを与えているので、コンポジションウインドウやタイムラインウインドウをフォーカスするとアクティブアイテムが切り替わる場合があります。
当初のコードよりも危険度が下がったので次のアップデートでライブラリに組み込みます
/* * FootgeItem.activate() * CompItem.activate() * FoldereItem.activate() * ちと凶悪だが無理やりアクティベートするメソドッドを実装する * 一応アクティブでないことを内部的に確認してから実行するよう作る * 一旦プロジェクトウインドウを非表示にして再表示するとフォーカスが入るので * それを利用する */ _activate=function(){ if(app.project.activeItem===this){return this}; for(var idx=1;idx<=app.project.items.length;idx++){ if(app.project.item(idx).selected)app.project.item(idx).selected=false; } this.selected=true; app.project.showWindow(false); app.project.showWindow(true); return this; } // FootageItem.prototype.activate=_activate; FolderItem.prototype.activate=_activate; CompItem.prototype.activate=_activate;
結局、あまり無理をしないでも済んだけど、やっぱりバージョンが変わった時には動作しなくなる恐れが充分あります。AE CS3で動作確認しました。
Powered by YukiWiki 2.1.2a / Modified by Nekomataya.