« 2009年9月 | トップページ | 2009年11月 »

2009年10月

2009年10月24日 (土)

Flashで絵を描けるか(mouseMoveイベントを試す)

ペンタブレットを買ってみて、きれいな線を引けることに感激しているので、Flashだとどのくらいきれいな線を描けるか試してみる。
線を描く方法としては、mouseMoveイベントにlineTo関数を割り当てて、マウスカーソルが動く毎に線を描くようにしている。

↓今回作成した線を描くFlash

MouseMoveEventTest_24fps.swf(フレームレート=24)

MouseMoveEventTest_120fps.swf(フレームレート=120)

ソースコードMouseMoveEventTest.as

マウスをクリックしながら、マウスを動かすことで線が描けます。
描いた線は15秒毎に消去されます。


今回はフレームレートを変えた2つを用意して試してみた。
ブラウザでの動作だと、フレームレートによる違いが少ないが、スタンドアローン版のFlashPlayerで動作を確認すると、フレームレートの差は大きくなる。
また、mouseMoveイベントの間隔もスタンドアローン版で動作させた方が短くなり、滑らかな線を描くことができる。
ただし、フレームレートの値はmouseMoveイベントには影響していないようだ。

ブラウザ上では、ゆっくりとカーソルを動かさないと滑らかな曲線が引けないが、AIRなどで実装すれば十分に滑らかな曲線を引くことができるかも知れない。

| | コメント (0) | トラックバック (0)

2009年10月20日 (火)

疑似3Dで玉を転がす

Flash MXでは3Dモデルを作れないので、グラフィックの重ね合わせと三角関数の組み合わせで表現してみる。

出来上がったのは↓

RollingBall.swf

ソースコードRollingBall.as

グラフィックRollingBall_data.swf


Flashをクリックして、フォーカスをあげれば、後はマウスカーソルを玉が追っかけます。
玉の表面に星印の模様を表現して、玉の回転を表してみたけど、不自然に見えることが多い・・・
玉を速く回転させてしまえば、適当な表面の動きでごまかせることが解ったから、ゲームとか作る時はごまかす方向で。
星印の数を増やせば、もっと回転が伝わりそうだけど、プログラムは理不尽に長くなっていきそう。


| | コメント (0) | トラックバック (0)

2009年10月18日 (日)

swfファイルを読み込んでActionScriptで制御する

ActionScriptだけでは、グラフィックを作ることがとても大変なので、FLASHで描いた絵やアニメーションを利用する必要がある。

swfファイルを読み込む場合、
読み込むファイルがFlashPlayer8以前でパブリッシュしてあると、読み込んで表示することはできるが、ActionScriptから制御をすることができない。
FlashPlayer9以降でパブリッシュしてあると、ActionScriptから制御することができる。

flashPlayer6のパブリッシュでも、MovieClipクラスでフレームを制御することができる。

今回はFlash CS4でパブリッシュしたswfファイルを使うことにする。
Flash MX(FlashPlayer6)のバージョンしか持っていないので、Flash CS4を持っている友人にswfファイルを作ってもらった。
↓が今回使うサンプル
MC_sample.swf

↓が今回作成したサンプル
EmbedSample.swf

ソースコードEmbedSample.as

左上は、読み込んだシンボルの1フレーム目、右上は2フレーム目、左下は3フレーム目を表示している。
右下は、シンボルをクリックすることで、1→2→3→1・・・の順にフレームを移動する。

ActionScriptで外部ファイルを読み込む説明は
Flex クイックスタートのアプリケーションアセットの埋め込み
にある。

今回は次のように記述して、埋め込みを行っている。
[Embed(source='MC_sample.swf',symbol='movie')]
private var MC_FILE:Class;
ここで定義したMC_FILEクラスを使って
var mc1:MovieClip=MovieClip(new MC_FILE());
の用に、MovieClipクラスのオブジェクトを作成する。
あとはMovieClipクラスのメソッドを使うことで、制御することができる。

読み込むswfファイルは、シンボルを作ってリンケージの設定でActionScriptで読み込むためのクラスを作っておく必要がある。
今回はmovieというシンボルを作って利用している。
シンボルを利用しないとムービークリップとして制御することができなかった。

| | コメント (0) | トラックバック (0)

2009年10月 9日 (金)

LEDドットマトリクスをArduinoで制御する(絵のスクロール)

前回の記事(LEDドットマトリクスをArduinoで制御する)を改良して、絵をスクロールして、表示できる情報を多くしてみた。

ソースコード LEDMatrix.pde


追加した部分は少しだけで、簡単に実現することができた。
今回は横16ドットの絵になっている。配列を手打ちで絵を作ることに限界を感じるので、Processingでエディターを作って、もっと横幅を大きくしたい。
あとは、Processingと通信して、リアルタイムに表示するデータを変更できるようにしたい。

| | コメント (0) | トラックバック (0)

2009年10月 6日 (火)

List コントロールを使ってみる(Flex)

MXMLの勉強にと、ユーザーインターフェイスコンポーネントの一つであるListコントロールをサンプルとしてプログラムを作ってみた。
MXMLの勉強には、Adobe FlexリソースにあるFlex 3開発ガイドの最初の辺りを一通り読んだ。

↓が今回作成したサンプルプログラム

ListControlTest.swf

入力されたデータから、新しいリストの要素を追加する。(Addボタン)
リスト内の選択された要素を削除する。(Deleteボタン)
リスト内の要素を選択すると、テキストフィールドにデータを表示。

ソースコード
ユーザーインターフェイスの配置などにMXMLを使用し、処理にはActionScriptを使っている。

コンパイルは.asファイルと同じように
# mxmlc ListControlTest.mxml
で行い、.swfファイルが作成される。


MXMLは、今までソースコードの読み方がわからず触ったことが無かったが、ヘルプを最初から読むことで理解することができた。
ActionScriptだけで、インターフェイスを作ると、それなりに面倒な処理が必要になるが、MXMLとActionScriptを組み合わせると、簡単にアプリケーションが開発できる。
ただし、コンポーネントを使用すると、コンパイルの時間が長くなり、swfファイルのサイズも大きくなってしまった。

| | コメント (0) | トラックバック (0)

« 2009年9月 | トップページ | 2009年11月 »