人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

こくばん.inのように、Flashで書いたものを、保存するのは、どんなことをしているのでしょうか?
ActionScriptは分かりますので、ざっくりのアルゴリズムを教えてください。

何となくぼやーと考えたのは以下です。
1.{どのチョーク、黒板消しをつかうか、座標、強さ?}を、毎秒数回保持していって、最後にその配列か何かをDBに保存している
2.出来上がった画像は、ビットマップとして、サーバサイドでファイル化してサムネール用などに使う

「1の毎秒数回保持していって?」のところなんですが、
そんな方法では処理の負荷が高いのかなと思ってしまうので、もっと違うのかなと考えています。

こくばん.in程のクオリティでなくても、単に線を描くのを再生できるようなもので結構ですので、
上のようなざっくりの流れを教えてください。

●質問者: dingding
●カテゴリ:インターネット ウェブ制作
✍キーワード:ActionScript dB Flash こくばん.in アルゴリズム
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● yo-kun
●27ポイント

当方Flashは専門外ですがこのような一般的なお絵かきソフトの話です。

概ね正しいと思いますが、通常は毎秒保存するのではなくマウス移動時ですね。

一定時間間隔だとどれだけ時間を短くしても取りこぼしの可能性は捨てきれませんし、仰るように処理の負荷が高すぎます。

従って、描画の時の操作=マウスの移動時に画面に描画しながら同時に保持していきます。

普通だとマウス移動時でなおかつマウスボタンが押されている時が描画時ですからこの時に保持していきます。

◎質問者からの返答

完成画はそれでいいですが、リプレイをするためには毎秒画像をとっておくのか、

ポイントを取っておくのかが必要ではないのですか?


2 ● okmt_masaaki
●27ポイント

以前、同じようなものを練習がてら作ったことがあります。

マウスが動いている間、onEnterFrameで各フレームの位置座標を配列に格納し、保存時はDBにカラムを2個用意して、それぞれx座標とy座標をカンマ区切りのテキストとして保存していました。

ブラシの種類を追加したとしてもそこまで重くならないと思います。

※ある程度時間制限を設ける必要はあると思いますが。

リプレイする際はユーザーが書いた速度とは異なりますが、DBから該当データをひっぱって来れば再現できると思います。

◎質問者からの返答

なるほど。x、yを別に格納するのは思いつきませんでした。

だいぶすっきりしてきました。


3 ● kujirahand
●26ポイント

マウスの移動したときに、x,y の情報をとっておくだけでも、こくばん.inのように動かせますが、時間にこだわるなら、x,y,時間の3つを記録しておけば良いかと思います。

以下は、再生はしませんが、座標をマクロとして記録していく様子を解説しています。

参考にしてみてください。

◎質問者からの返答

ありがとうございます

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ