MouseEvent の target

09.03.12 Thu 17:04
Category: actionscript

忘れそうなのでメモ。

container という空の Sprite に circle という Sprite を配置して、container の MouseEvent を取得すると、ターゲットの値が circle になってしまう。

MouseEvent - ActionScript 3.0 コンポーネントリファレンスガイド:

ネストされたノードが関係する場合、マウスイベントは、表示リストで確認できる最も深くネストされたノードをターゲットにします。

このターゲットを container にするには、container の mouseChildren プロパティを fasle に設定すればよい。

mouseChildrenプロパティ

var container:Sprite = new Sprite();
container.name = "container";
addChild(container);

var circle:Sprite = new Sprite();
circle.name = "circle";
circle.graphics.beginFill(0xFFCC00);
circle.graphics.drawCircle(40, 40, 40);

container.addChild(circle);

container.mouseChildren = false;

container.addEventListener(MouseEvent.CLICK, clicked);

function clicked(event:MouseEvent):void
{
	trace(event.target.name); // container
}

container.mouseChildren = false; の行があるかないかで変わってくる。

Eclipse で Processing

09.03.12 Thu 01:45
Category: processing

Processing 標準の IDE が、コードの補完をしてくれなくて使い辛いので、普段 mac では TextMate を使っていたんだけど、windows でも何かエディターがあれば便利だよなあと思い探してみました。

ざっと調べてみた結果、標準以外で開発する場合は下記の手段がある(まだあるかもしれない)。

mac
Xcode
TextMate
Eclipse

win
jEdit
Eclipse

このうち共通するのは Eclipse のみ!ということで、WindowsでのProcessing用エディタ1Eclipse編を参考に思い切って導入してみた。

やってみたら意外と簡単で、Eclipse インストールして、新規で java のプロジェクト作って、ライブラリで processing の lib フォルダに入ってる core.jar を追加するだけのことだった。

ただ、標準と書き方が若干違っていて、

import processing.core.*;

public class HelloP5 extends PApplet
{
	public void setup()
	{
	}

	public void draw()
	{
	}
}

みたいに書くことになる。標準の書き方よりは長くなってしまうけど、個人的には逆にこっちのほうが as3 っぽいのでイイかもしれない。

今まで processing やってきたことは PApplet を拡張した java だったんか!ってのを、実際やってみて改めて気付きました。

あと調べててわかったのは、標準の IDE で複数のタブを使ってクラス書いてたのは、実は一つに結合されていたってこと。

[Processing][仕様].pdeはインナークラス、.javaは別クラス

複数のタブを開いて別のクラスを作っても、そのクラスはスケッチ本体クラスのインナークラスとして結合されるのです。別の言い方をすると、スケッチのディレクトリ直下にある「*.pde」ファイルは、全部結合された後、コンパイルされるということです。

なので、Eclipse で複数クラス作るときは、メインの PApplet を拡張したクラスのインスタンスを渡すか、参照用の静的クラスかシングルトンを作った方がいいかも。

Eclipse 自体は、普段 actionscript で flexbuilder を使っていたので、違和感なく使えそう。
しばらく使ってみて調子良さそうだったら subversion なんかも入れてみます。

perlin particle

09.03.06 Fri 18:25
Category: processing

l00oo.oo00l.com にアップしている parlin particle はパーティクルを perlin ノイズを使って動かしている。

これは最初 processing で作っていて、それを as3 で書き直したしたもの。(といってもやってることはシンプルなのでほとんど同じコードなんだけど。)

せっかくなので processing 版を vimeo にアップしてみた。

こういうのはイイ感じになるまで、ひたすら係数なんかの値を変えて試す。左脳というよりも、わりと右脳寄りな作業かもしれない。

©2012 l00oo.oo00l blog | powered by WordPress with Barecity