topical media & game development
student-ar-org-tarotaro-flash-ar-URLSample.mx
student-ar-org-tarotaro-flash-ar-URLSample.mx
[swf]
flex
<?xml version="1.0" encoding="utf-8"?>
<!-- メタセコイアファイルのURLを指定してキャラクターを選択可能な、FLARToolKitの利用サンプル -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
styleName="plain"
width="640"
height="480"
applicationComplete="onInit();">
<mx:Script>
<![CDATA[
import flash.events.Event;
import flash.net.URLRequest;
import org.tarotaro.flash.pv3d.Metasequoia;
import org.papervision3d.materials.WireframeMaterial;
import org.papervision3d.objects.DisplayObject3D;
import org.papervision3d.objects.parsers.KMZ;
import org.papervision3d.objects.parsers.Sketchup;
import org.papervision3d.objects.primitives.Plane;
import org.tarotaro.flash.ar.SimpleFLARToolKitView;
import mx.core.UIComponent;
AR用の表示領域
private var ar:SimpleFLARToolKitView;
初期化処理
private function onInit():void
{
ar = new SimpleFLARToolKitView();
ar.addEventListener(Event.COMPLETE,function(e:Event):void
{
var uiComp:UIComponent = new UIComponent();
uiComp.addChild(ar);
arCanvas.addChild(uiComp);
ar.scaleX = ar.scaleY = 2;
loadMetasequoia(urlText.text);
ar.start();
});
ar.setupAR();
}
メタセコイアファイルを読み込み、AR用オブジェクトに渡す。
モデルの下には、赤い正方形の枠を出す。
@param url 読み込むメタセコイアファイルのURL
private function loadMetasequoia(url:String):void
{
var grp:DisplayObject3D = new DisplayObject3D("model");
var wmat:WireframeMaterial = new WireframeMaterial(0xff0000, 1, 2);
wmat.doubleSided = true;
var basePlane:Plane = new Plane(wmat, 80, 80,2,2);
grp.addChild(basePlane);
if (url != null && url.length > 0) {
var ext:String = url.substring(url.length - 3);
switch(ext) {
case "mqo":
var mqo:Metasequoia = new Metasequoia();
mqo.load(url, 0.3);
mqo.rotationX = 90;
//mqo.rotationZ = -90;
//mqo.z += 40;
grp.addChild(mqo);
break;
//case "skp":
//var skp:Sketchup = new Sketchup(url);
//skp.rotationX = 90;
//skp.rotationZ = -90;
//grp.addChild(skp);
//break;
case "kmz":
var kmz:KMZ = new KMZ("model");
kmz.load(url);
kmz.rotationX = 90;
kmz.rotationZ = -90;
grp.addChild(kmz);
}
}
ar.model = grp;
}
]]>
</mx:Script>
<mx:UIComponent id="arCanvas" x="0" y="0" width="100%" height="100%" />
<mx:Panel width="100%" layout="horizontal" title="MetasequoiaファイルのURLを入力" alpha="1">
<mx:Label text="URL:"/>
<mx:TextInput id="urlText" width="100%" text="" />
<mx:Button id="showModel" label="表示" click="loadMetasequoia(urlText.text)" />
</mx:Panel>
</mx:Application>
(C) Æliens
04/09/2009
You may not copy or print any of this material without explicit permission of the author or the publisher.
In case of other copyright issues, contact the author.