<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>ncreate.netPapervision3D | ncreate.net</title>
	<atom:link href="http://www.ncreate.net/category/papervision3d/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ncreate.net</link>
	<description>blog</description>
	<lastBuildDate>Sat, 14 Jan 2012 15:14:41 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Papervision3D 2.0 クリックイベントを追加する</title>
		<link>http://www.ncreate.net/flash/post592/</link>
		<comments>http://www.ncreate.net/flash/post592/#comments</comments>
		<pubDate>Tue, 22 Dec 2009 06:49:34 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[Papervision3D]]></category>

		<guid isPermaLink="false">http://www.ncreate.net/?p=592</guid>
		<description><![CDATA[バージョン2.0を少し前から触り始めています。去年（一昨年？）触った時と比べて実装が楽になっている印象です、、が、当時の事をほとんど忘れてしまっているので、実際はどうなんでしょう、、。 今回は、 ・3D空間上の物体をクリ [...]]]></description>
			<content:encoded><![CDATA[<p>バージョン2.0を少し前から触り始めています。去年（一昨年？）触った時と比べて実装が楽になっている印象です、、が、当時の事をほとんど忘れてしまっているので、実際はどうなんでしょう、、。</p>
<p>今回は、</p>
<p>・3D空間上の物体をクリックしてイベントを取得<br />
・物体へオンマウスした際にマウスカーソルを変える</p>
<p>という基本的な部分について躓いたので、自分用コメントを付けて貼っておきます</p>
<p>&nbsp;</p>
<pre class="brush: actionscript3; gutter: true">package {

import flash.events.Event;

import org.papervision3d.view.BasicView;
import org.papervision3d.objects.primitives.Plane;
import org.papervision3d.materials.ColorMaterial;
import org.papervision3d.events.InteractiveScene3DEvent;

public class PV3DClickTest extends BasicView {

private var planeObj:Plane;

public function PV3DClickTest() {

viewport.interactive = true; // クリックイベントを取得する際に必要
viewport.buttonMode = true; // ボタンモードON

var material:ColorMaterial = new ColorMaterial(0);
material.interactive = true; // クリックイベントを取得する際に必要
material.doubleSided = true; // 裏返しになっても表示させる

planeObj = new Plane( material, 300, 300, 1, 1 );
planeObj.addEventListener(InteractiveScene3DEvent.OBJECT_PRESS, onClick, false, 0, true);

scene.addChild(planeObj);

// render
startRendering();
addEventListener(Event.ENTER_FRAME, loop, false, 0, true);
}

private function loop(e:Event):void {
planeObj.rotationY += 1;
}

public function onClick(e:InteractiveScene3DEvent):void {
trace(e.toString());
}
}
}</pre>
<p>&nbsp;</p>
<p>マテリアル毎にinteractiveプロパティでクリッカブルに設定できるが、それと同時にviewportにもinteractiveプロパティも設定しておかなくてはならない、というところが今回躓いた部分。あと、buttonModeプロパティはviewportで設定するようなので、ついでにサンプル内に記述しておきました。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ncreate.net/flash/post592/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

