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

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

twitter

ねこまたやのついった

企画モノ

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


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



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

BBS

ねこまたやBBS
開発室BBS

Language



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

applyPresetA - [[レンダー乙女とか]]


目次

レンダー乙女とか

applyPresetA

AVLayer.applyPresetの不具合回避代用メソッド

メソッド名は applyPresetA(lternate)くらいの意味です。

このコードを実行するとAVLayerオブジェクトでapplyPresetA()メソッドが使用可能になります。 つまり以下のよう使用が可能になるわけです。

	app.project.item(1).layer(1).applyPresetA(myPresetFile);

大方、マニュアルのapplyPreset()メソッドと同じ働きをします。 本来ならば、applyPreset()メソッドがこのように働くべきなのですが、残念ながらそのようになっていない為の バグ回避用 代用メソッドです。 内部的には、コードをご覧のとおり。

セットアップ

このコードは、AVLayerのプロトタイプに対してメソッドを作成していますので、AE起動時点で一度だけ実行しておけば、それ以降作成されるすべてのレイヤーで継承されて同じコードが使用できます。

起動時に自動で実行させるためには、

スクリプトに(applyPresetA.jsx 等)適切なファイル名を与えて、"Scripts/Startup/"フォルダに保存してから、AEを再起動してください。 nas環境をご使用の方は、nasStartup.jsx内の開始時実行スクリプトに追加しても同様の効果が得られます。

メソッドの使用方法

書式
AVLayer.applyPresetA(File)
app.project.item(1).layers[2].applyPresetA(File.openDialog("プリセットファイル選択"));//mac
app.project.item(1).layers[2].applyPresetA(File.openDialog("プリセットファイル選択",".ffx"));//win
戻り値
プリセット適用成功時は undefined(本来のapplyPresetの戻り値) /引数の不正で操作をパスした時は false

ご注意

現在はとりあえずダウンロードとかありません。そのうち乙女のライブラリにこのまま組み込む予定

このコードは、内部でapplyPresetを呼び出していますのでAE7以降の環境でのみ実行可能です。 AE6.5の方は残念ですが他の方法をご利用下さい。

source

//applyPresetのバグ回避代用メソッド
/*
 */
AVLayer.prototype.applyPresetA=function(myFile){
var myResult=false;
if((myFile instanceof File) && (myFile.exists)){
	var mySelection=new Array();
app.beginUndoGroup('myApplyPreset');
	for(var i=0;i<this.containingComp.layers.length;i++){
		mySelection.push(this.containingComp.layers[i+1].selected);
		this.containingComp.layers[i+1].selected=false;
	}

	this.selected=true;myResult=this.applyPreset(myFile);

	for(var i=0;i<this.containingComp.layers.length;i++){
		this.containingComp.layers[i+1].selected=mySelection[i];
	}
app.endUndoGroup();	
}else{
//		エラーメッセージが必要ならここをアクティブに 不要ならばブロックごと削除
//	alert("no File "+myFile.name);
}
return myResult;
}
//Test この下は試験コードなので捨ててチョーダイ
app.project.item(1).layer(1).applyPresetA(File.openDialog(""));

Nekomataya/kiyo 2008