topical media & game development

talk show tell print

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.