おいしいAS3 -34ページ目

シンボルを置き換え

結局あれから何かと猫の手に追加したり
書き直したりしてます

今回はそういえば作ってなかったぞ、というもの

『シンボルの置き換え』

オーサリングだと複数のインスタンスのシンボルを
一気に入れ替えってできなくて不便なので
作っておきたいなとおもってたものです

ついでに複数のシンボルを選択すれば
選択したシンボルに順繰りに
置き換えて行くようにしました

順繰り置き換えの使いどころはよくわからないですが
複数のインスタンスの元シンボルをまとめて
別のシンボルに置き換えたい場面ってのは
結構あるんじゃないでしょうか


function init(){
dom=fl.getDocumentDOM()
sel=dom.selection
tml=dom.getTimeline()
lyr=tml.layers[tml.currentLayer]
frm=tml.layers[tml.currentLayer].frames[tml.currentFrame]
indList=tml.getSelectedLayers()
bgn=tml.currentFrame
}

function swapEle(){
init()
dom.selectNone()
var itms=dom.library.getSelectedItems()
var cnt=0
for each(var ele in sel){
ele.selected=true
dom.swapElement(itms[(cnt%itms.length)].name)
ele.selected=false
cnt++
}
}



実は、このスクリプトではインスタンスを一個ずつ
巡回してswapElementしてますが
JSFLでは複数選択状態のまま
dom.swapElementしても
ちゃんと全部入れ替えしてくれます

重いはずだ・・

猫の手PVの制作作業がなんだか重いと思ったら
いつの間にやらファイルサイズが540MB・・・


まあ文字が全部アウトラインですしね

しかもそれでビルドアニメ作ると
何倍にもなる訳だから・・・・

ビルドアニメーション軽量化

JSFLでは少しぐらいよけいな処理が代わりに必要になっても
クリップボードは使わない方が軽いとか
思ってたけどそんなことはなかったという話

今までビルドアニメーションは上のようなカンジで
全部のパーツがある状態から要らないものを
削除して残ったものの再生開始フレームを
適したものに設定するという形をとってました

おいしいAS3


けどパーツが400超ぐらいになると1分近く時間がかかってくる

多分毎フレーム全てのパーツを巡回して削除したり再生開始フレームを
設定してるのが重いからなんだろうと思って
下のように巡回が減るように最初に全部をカットして
各フレームでペースト、必要なものを残してカット
を繰り返すような処理にしたらなんだか軽くなってくれました

所詮JSFLは手作業の代わりににオーサリング作業をするだけのスクリプトなんで
処理の数がそのまま速度に影響してくるようなカンジみたいですね