PV3D クリックイベント
Papervision3Dでマウスクリックをハンドリングする方法。
ポイントは3つ
・Viewport3Dのinteractiveをtrueにする
・Materialのinteractiveをtrueにする
・InteractiveScene3DEventを使ってマウスクリックをイベントに登録する
♥0 |
Line 38 |
Modified 2010-09-16 15:54:09 |
MIT License
archived:2017-03-20 01:40:16
ActionScript3 source code
/**
* Copyright Makoto_Tanaka ( http://wonderfl.net/user/Makoto_Tanaka )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/pJ0p
*/
package {
import flash.text.TextField;
import flash.events.Event;
import flash.events.MouseEvent;
import org.papervision3d.view.BasicView;
import org.papervision3d.objects.primitives.*;
import org.papervision3d.materials.*;
import org.papervision3d.materials.special.*;
import org.papervision3d.objects.*;
import org.papervision3d.events.*;
public class FlashTest extends BasicView {
private var _plane:Plane;
private var _color:Number = 0xffff00;
// コンストラクタ
public function FlashTest() {
// 第4引数をtrueにすることでViewport3Dのinteractiveの値がtrueになる。
super(0,0,true,true);
init();
}
// 初期化
protected function init():void {
// 板の追加
var material:ColorMaterial = new ColorMaterial(_color);
material.interactive = true; // マウスクリックに反応するようにinteractiveをtrueにする
_plane = new Plane(material, 200, 200, 2, 2);
scene.addChild(_plane, "plane1");
_plane.addEventListener(InteractiveScene3DEvent.OBJECT_PRESS, onClick);
// レンダリング開始
startRendering();
}
// Planeクリックイベント
private function onClick(e:InteractiveScene3DEvent):void {
if (_color == 0xffff00) {
_color = 0xff00ff;
}
else {
_color = 0xffff00;
}
var material:ColorMaterial = new ColorMaterial(_color);
material.interactive = true;
_plane.material = material;
}
}
}