« FlashPlayerのExpress Installがうまくいかない | メイン | FLVPlaybackからNetConnectionとNetStreamを取得する »

選択したオブジェクトを(0,0)に移動するJSFL

del.icio.us it!   hatena bookmark
確実に誰かが作ってると思うけど練習かねて書いてみた

var doc = fl.getDocumentDOM();
if (doc.selection.length > 0) {
    var x = doc.getElementProperty("x");
    var y = doc.getElementProperty("y");
    var w = doc.getElementProperty("width");
    var h = doc.getElementProperty("height")
    doc.moveSelectionBy({x:-x+w/2, y:-y+h/2});
}

JSFLめんどい
doc.getElement()とかあったら便利だと思うんだけどなー
ないっぽいなー


追記 2008.6.16
上のスクリプトだと、複数選択してたときとかにおかしなことになってた。
というかdoc.selectionのなかに選択したelementが入ってるから、それのプロパティ直接変更できたよ。ちゃんとドキュメント読まなきゃなー
var doc = fl.getDocumentDOM();
for (var i in doc.selection) {
    doc.selection[i].x = 0;
    doc.selection[i].y = 0;
}
こんな感じでもいけるっぽい
ただ、これだとオブジェクトがシンボルになってれば基準点を基準に(0,0)に移動してくれるけど、直接書いたシェイプとかだと、基準点を勝手にオブジェクトの中心にしてしまう。
個人的にはオブジェクトの左上を(0,0)にしたいのでこんな感じにしてみた。
var doc = fl.getDocumentDOM();
for (var i in doc.selection) {
    if(doc.selection[i].elementType == "shape") {
        doc.selection[i].x = 0 + doc.selection[i].width/2;
        doc.selection[i].y = 0 + doc.selection[i].height/2;
    } else {
        doc.selection[i].x = 0;
        doc.selection[i].y = 0;
    }
}


Flash Math & Physics Design:ActionScript 3.0による数学・物理学表現[入門編] 集合知プログラミング ビジュアライジング・データ —Processingによる情報視覚化手法 御岳百草丸 1200T

トラックバック

このエントリーのトラックバックURL:
http://un-q.net/mt-tb.cgi/318

コメントを投稿

書いたよ!