2ntブログ
短期合宿
スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
ActionScript SpriteにGraphicsでいっぱい描画すると重くなる
取得したマウス座標をただ直線で結ぶだけのコードが
グルグルと線を描いてると、何故かどんどん重くなってカクカクになる。
//抜粋-----------------------------------------------------
private var dragStart:Point = null;

private function onMouseDown( e: MouseEvent ): void{
if( dragStart == null ){
dragStart = new Point( mouseX, mouseY );
}
}
private function onMouseMove( e: MouseEvent ): void{
if( dragStart ){

//draw
var g:Graphics = sp.graphics;
g.lineStyle( 4, 0x661111 );
g.moveTo( dragStart.x, dragStart.y );
g.lineTo( mouseX, mouseY );

dragStart.x = mouseX;
dragStart.y = mouseY;
}

}
private function onMouseUp( e: MouseEvent ): void{
dragStart = null;
}

//ここまで---------------------------------------------------------

原因分からず困る。
試しにgraphics.clear()を呼ぶと最初の軽い状態に戻るんで、SpriteかGraphics。
で、気が付く。
Spriteを拡大縮小回転しても綺麗なのは内部で描画したベクターのObject持ってるから。
それが多くなるのが原因?もしかして追加描画するたびに全ベクターデータを再描画している?
(結局そうなのかどうなのかは分からず)

リファレンスを探すとSprite.cacheAsBitmapと言うそれっぽい物があるんで、
これをtrueで解決!と思ったのにやっぱり変わらず・・・
Google先生で調べると、「変化が無かった時にキャッシュを使う」だけらしい。

結局上のコードはGraphicsで描いてはbmp.bitmapData.draw()することに。

//抜粋-----------------------------------------------------
private function onMouseMove( e: MouseEvent ): void{
if( dragStart ){

//draw
var tmpSp:Sprite = new Sprite();
var g:Graphics = tmpSp.graphics;
g.clear();
g.lineStyle( 4, 0x661111 );
g.moveTo( dragStart.x, dragStart.y );
g.lineTo( mouseX, mouseY );

dragStart.x = mouseX;
dragStart.y = mouseY;

bmp.bitmapData.draw( tmpSp );
}

}
//ここまで-----------------------------------------------------

解決したけど、なんかアホな事をしてる気がしてすっきりしない。
ActionScript バネモデル
フリーでFlashが作れるってことでFlex触ってた。

アナルボール ボールをマウスドラッグで操作
analball.jpg


FlashPlayerが古いと動かないかも。
無駄が多いので、見かけのしょぼさの割りに重い。

//2008/03/23追記
リンク先のファイルを上書きしてることに気が付いた。
サムネイルとは違うFLASHになってます。
完成
完成 \/^o^\/
ゲスト原稿も頂いて無事完成。結局コピー本だけど。

完成
To LOVEる 0003

To LOVEる 0004

To LOVEる 0013

To LOVEる 0018


グレスケとか上手くコピーできるか良く分かんないけど、
とりあえずこれでクリスマスを迎えられるよ!


                                ☆   +
.                               .,,::。:+
                               +,::o;;::・;,  :
 \  /  :  :::::::::::::/⌒ヽ::::::::::::::::::::::::::     ..<;;::・,,::;ゞ;;o;*::.    
  (⌒)       :::/   <`O::::::::::: : :: :: :   ,,;;;<;+::;;´,_ゝ`*:,,;;ゞ;;:
/ ̄ ̄|       ⊂ニニニ⊃:: : :: : ::: :: ::   ;;;*;;;〇;ゞ;*::;;:<;;;*;:;ゞ;;o;     
| ||.  |     旦 (_, ,_  ): :::::::::::::: : : ::: <;;;;〇´,_ゝ`;ゞ;*::o,ゞ ;*;;;;*:o
\__|     ========  \ ::::::::::::: :: ;;;*;;;〇;ゞ;*::;;;;;*ゞ´,_ゝ`〇;;; *
 |   |   /※※※※ゞノ ,_)::::::::::::: ::    : : : : : : llllllll : : : : : :  
   ̄ ̄   ~~~~~~~~~~~~~~~~              田田田
作業
10日までには完成しなかった。
残り作業考えると後+1週間くらいかかりそう。

表紙描いた。上の方にタイトルと、背景に適当に何か描いて完成予定。
ToLOVEる ララ 表紙用
作業
ネットを控えめにして作業してました。

本文22P中19Pまで人物のペン入れ完了ー
後はペン入れ2P、トーン、効果線、擬音、写植で完成?
10日までに完成は厳しそう。

To LOVEる 0004 途中

To LOVEる 0005 途中

To LOVEる 0007 途中


# 友達の家でWiiやって来た。
# リモコンが面白かったけど買うのは来年でいいかな