Autor |
Nachricht |
Flipkick
Threadersteller
Dabei seit: 15.05.2003
Ort: Frankfurt am Main
Alter: 40
Geschlecht:
|
Verfasst Fr 11.02.2011 17:55
Titel Augmented Reality |
 |
|
Hallo,
ich hatte mich mal an das schöne Thema herangewagt und das recht nützliche Tutorial von Gotoandplearn angeschaut.
Jedoch funktioniert es hinten und vorne nicht.
Ich hab den Source Code von dem FLARToolkit heruntergeladen, alles so geamct, wie er es im Video hat, hier der Code: Code: |
package {
import com.transmote.flar.FLARManager;
import com.transmote.flar.marker.FLARMarkerEvent;
import com.transmote.utils.time.FramerateDisplay;
import flash.display.Sprite;
import flash.events.Event;
import flash.media.Video;
import flash.display.DisplayObjectContainer;
import flash.display.DisplayObject;
import flash.events.Event;
import org.libspark.flartoolkit.support.pv3d.FLARCamera3D;
import org.papervision3d.materials.MovieMaterial;
import org.papervision3d.materials.DisplayObject3D;
import org.papervision3d.objectives.primitives.Plane;
import org.papervision3d.render.LazyRenderEngine;
import org.papervision3d.scenes.Scene3D;
import org.papervision3d.view.Viewport3D;
[SWF(width="640", height="480", backgroundColor="#000000", frameRate="40")]
public class HelloFLAR extends Sprite
{
private var fm:FLARManager;
private var scene:Scene3D;
private var view:Viewport3D;
private var camera:FLARCamera3D;
private var lre:LazyRenderEngine;
private var p:Plane;
private var con:DisplayObject3D
private var marker:FLARMarker;
private var v:Vid;
public function HelloFLAR()
{
initFLAR();
v = new Vid();
v.vid.source = "video.flv";
v.vid.stop();
}
private function initFLAR():void
{
fm = new FLARManager("flarConfig.xml");
fm.addEventListener(FLARMarkerEvent.MARKER_ADDED, onAdded);
fm.addEventListener(FLARMarkerEvent.MARKER_REMOVED, onRemoved);
fm.addEventListener(Events.INIT, init3D);
addChild(Sprite(fm.flarSource));
}
private function onAdded(e:FLARMarkerEvent):void
marker = e.marker;
p.visible = true;
v.vid.play();
}
private function onRemoved(e:FLARMarkerEvent):void
{
marker = null;
v.vid.stop();
p.visible = false;
}
private function init3D(e:Event):void
{
scene = new Scene3D();
camera = new FLARCamera3D(fm.cameraParams);
camera.z = -30;
view = new Viewport3D(640, 480, true)
lre = LazyRenderEngine(scene, camera, view);
var mat:MovieMaterial = new MovieMaterial(v, false, true);
p = new Plane(mat, 320, 240, 2, 2);
p.scaleY = -1;
p.rotationZ = 90;
p.visible = false;
con = new DisplayObject3D();
con.addChild(p);
scene.addChild(con);
addhild(view);
addChild(new FramerateDisplay());
addEventListener(Event.ENTER_FRAME, loop);
}
private function loop(e:Event):void
{
if(marker != null)
{
con.transform = FLARPVGeomUtils.convertFLARMatrixToPVMatrix(marker.transform.Matrix);
}
lre.redner();
}
}
}
|
Aber meckert er mir zum Beispiel rum, dass in Zeile 72,79 und 105 das private Attribut nicht gesetzt werden kann, da es nur für Klasseneigenschaften verfügbar ist ?!?
Ich vermute ja, dass ich hier irgendwie eine alte Version von dem FlarToolkit heruntergeladen habe, aber trotzdem sollte er doch diese Fehler nicht anmeckern oder?
|
|
|
|
 |
phihochzwei
Moderator
Dabei seit: 08.06.2006
Ort: Mülheim an der Ruhr
Alter: 45
Geschlecht:
|
Verfasst Fr 11.02.2011 18:14
Titel
|
 |
|
A) Sorry wenn ich nicht zähle, aber welche Zeilen meinst Du ?
B) Welche IDE benutzt du ?
|
|
|
|
 |
Anzeige
|
|
 |
Flipkick
Threadersteller
Dabei seit: 15.05.2003
Ort: Frankfurt am Main
Alter: 40
Geschlecht:
|
Verfasst Fr 11.02.2011 18:22
Titel
|
 |
|
Hallo,
hehe kein Prob, er meckert mir eigentlich alle Zeilen an mit "private function", ich möchte gerne mal wissen, was ich daraus lernen kann damit ich den Fehler selber erkennen kann, aber bisher sagts mir einfach nichts, da ich es 1:1 aufgebaut habe ich in dem Video.
Als FLARToolkit benutze ich glaub ich das 2.5.4 oder so und baue es in Flash Prof. CS5 auf < ist das vlt das Problem ?
Gruß
Seb
Zuletzt bearbeitet von Flipkick am Fr 11.02.2011 18:22, insgesamt 1-mal bearbeitet
|
|
|
|
 |
phihochzwei
Moderator
Dabei seit: 08.06.2006
Ort: Mülheim an der Ruhr
Alter: 45
Geschlecht:
|
Verfasst Sa 12.02.2011 09:56
Titel
|
 |
|
Ich frag jetzt ganz blöd (ich hab hier schon viel gesehen): Du packst den Code aber in eine Klasse ja ? Also du kopierst das jetzt nicht als Script auf einen Keyframe?
Zuletzt bearbeitet von phihochzwei am Sa 12.02.2011 09:56, insgesamt 1-mal bearbeitet
|
|
|
|
 |
humankatapult
Dabei seit: 05.11.2004
Ort: Abteilung VII Intern
Alter: -
Geschlecht:
|
Verfasst Mi 16.02.2011 12:22
Titel
|
 |
|
Papervision-Paket lokal vorhanden?
|
|
|
|
 |
Flipkick
Threadersteller
Dabei seit: 15.05.2003
Ort: Frankfurt am Main
Alter: 40
Geschlecht:
|
Verfasst Do 17.02.2011 15:40
Titel
|
 |
|
Hey,
ja in eine Klasse packe ich es schon .
Habe mir mal andere Examples von "Woven" geholt und da funktioniert es....aber trotzdem finde ich den Fehler nicht. Der interessiert mich an was es liegt. Papervision, kann sein dass es daran liegt - werde es mal testen. Kann sein, dass die packages falsch verlinkt sind....
|
|
|
|
 |
Flipkick
Threadersteller
Dabei seit: 15.05.2003
Ort: Frankfurt am Main
Alter: 40
Geschlecht:
|
Verfasst Fr 18.02.2011 12:44
Titel
|
 |
|
kann ich eigentlich ein SWF auch als AR reinladen?
Im prinzip funktioniert es ja so, dass man nur 3D Objekte erstellen kann, wie z.B. einen Würfel etc. dazu benötit man die Papervision-Engine, richtig?
Kann ich also auch anstatt eines 3D Würfels ein SWF als 3D Objekt umwandeln und hineinladen und wenn ja wie? Wahrscheinlich würde es dann zwar 3D sein, allerdings flach, aber so wäre es auch gewollt.
|
|
|
|
 |
|
|
 |