編集(管理者用) | 差分 | 新規作成 | 一覧 | RSS | FrontPage | 検索 | 更新履歴
== o ==
ねこまたや web出張所
INDEX

トップページ
お知らせ
twitter
お道具箱
技術資料と雑談
ライブラリ
雑貨や(ダウンロード)
最近の更新
ねこまたやについて

twitter

ねこまたやのついった

企画モノ

psAxe情報ページ
自主制作アニメ
ぽこあぽこ られんたんど


あやかしあやし
エフェクトネタ帳



りまぴん
AE エクスプレッション
レンダー乙女とか
簡易版XPSリンカ
おまけギャラリ

BBS

ねこまたやBBS
開発室BBS

Language



開発室みたいなものでしたが
spamアクセスがはげしいのでページは凍結中です。
書き換えは管理人のみが可能です。
Nekomataya/2016

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で動作確認しました。