| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User Registriert seit: Oct 2011
Beiträge: 4
|
Hallo zusammen, zunächst sei gesagt, dass ich ein Anfänger in Flash, AS3 und Papervision bin. Ich habe mich jetzt mehrer Tage und Wochen durch unterschiedliche Lernhilfen gekämpft und auch das Forum hier eine ganze Weile durchstöbert. Ich versuche mich gerade an einer kleinen 3D Welt, diese kann ich auch umsetzen sofern ich nur eine Szene auf einer Stage habe. Jetzt möchte ich aber gleichzeitig 2 Szenen und eine Fläche für Textausgaben erzeugen und scheiter kläglich. Mein Problem habe ich auf eine kleine Teststellung runtergebrochen, in der ich drei einfach 3d-Szenen in 3 Container auf die Stage packen möchte. Außer der Hintergrundfarbe sehe ich im Test allerdings nichts ![]() Die Hauptklasse: Code: package
{
import flash.display.Sprite;
public class Main extends Sprite
{
private var kartegross:Sprite;
private var karteklein:Sprite;
private var beschreibung:Sprite;
private var basic1:Basic;
private var basic2:Basic;
private var basic3:Basic;
public function Main()
{
init();
}
private function init():void
{
basic1 = new Basic();
basic2 = new Basic();
basic3 = new Basic();
kartegross = new Sprite();
kartegross.width = 700;
kartegross.height = 600;
kartegross.x = 0;
kartegross.y = 0;
karteklein = new Sprite();
karteklein.width = 300;
karteklein.height = 300;
karteklein.x = 700;
karteklein.y = 0;
beschreibung = new Sprite();
beschreibung.width = 300;
beschreibung.height = 300;
beschreibung.x = 700;
beschreibung.y = 3;
kartegross.addChild(basic1);
karteklein.addChild(basic2);
beschreibung.addChild(basic3);
stage.addChild(kartegross);
stage.addChild(karteklein);
stage.addChild(beschreibung);
}
}
} Code: package
{
import flash.display.Sprite;
import flash.events.Event;
import org.papervision3d.cameras.Camera3D;
import org.papervision3d.objects.primitives.Sphere;
import org.papervision3d.render.BasicRenderEngine;
import org.papervision3d.scenes.Scene3D;
import org.papervision3d.view.Viewport3D;
public class Basic extends Sprite
{
private var scene:Scene3D;
private var viewport:Viewport3D;
private var camera:Camera3D;
private var renderEngine:BasicRenderEngine;
private var sphere:Sphere;
public function Basic()
{
scene = new Scene3D();
camera = new Camera3D();
sphere= new Sphere();
scene.addChild(sphere);
viewport = new Viewport3D();
this.addChild(viewport);
renderEngine = new BasicRenderEngine();
renderEngine.renderScene(scene,camera,viewport);
this.addEventListener(Event.ENTER_FRAME,render);
}
private function render(e:Event):void
{
sphere.localRotationY += 1;
renderEngine.renderScene(scene,camera,viewport);
}
}
} Geändert von Sucht (15-10-2011 um 23:31 Uhr) |
| | |
| | #2 (permalink) |
| Neuer User Registriert seit: Nov 2005
Beiträge: 154
|
Hallo, wenn du jetzt anfängst mit Flash 3D, rate ich dir besser Away3D zu nutzen anstelle von Papervision, welches nicht mehr weiterentwickelt wird. Die Prinzipien sind jedoch gleich. Deshalb zu deinem code: du brauchst kein extra Sprite() erstellen, wo du deine 3D Szene reinpackst, denn bei deinem Klassenaufbau erbt dein Basic bereits vom Sprite. So kannst du es direkt benutzen. So sollte deine Main aussehen, damit es läuft: PHP-Code: Viel Spass beim ausprobieren! |
| | |
| | #3 (permalink) |
| Neuer User Registriert seit: Oct 2011
Beiträge: 4
|
Hallo Fab4ce, vielen Dank für Deine Antwort. Ich habe meinen Code angepasst aber leider hat sich nichts verändert, ich sehe auf meiner Bühne keine der 3d-Szenen. Lediglich die Hintergrundfarbe der Bühne ist zu sehen. Irgendwas läuft hier noch falsch und ich habe keine Idee was es ist. ![]() Ergänzung: Ich habe jetzt die Verarbeitung geprüft, die Klassen werden geladen und die Events tickern auch fleißig, ich sehe aber auf der Bühne nichts. Geändert von Sucht (16-10-2011 um 20:38 Uhr) |
| | |
| | #5 (permalink) | |
| Neuer User Registriert seit: Oct 2011
Beiträge: 4
|
Hallo Fab4ce, - der Compiler meldet keine Fehler - die Hintergrundfarbe der Bühne ist Blau - die Bühne ist 1000 x 600 Pixel gross Beim Debuggen habe ich alle Teile geprüft, der Code wird vollständig durchlaufen, auch die Events. Auf der Bühne ist aber nichts zu sehen. Ich habe versuch, die einzelnen Objekte mit jeweils einer anderne Farbe zu füllen, auch hier ist gibt es keine Veränderung. Es ist so als würde auf der Oberfläche nichts ankommen. Zusatz: Ich habe es jetzt mit einem Loader versucht, damit kann ich das Objekt positionieren, leider mit dem Nachteil, dass ich auf diese Komponente keine echten Einfluss nehmen kann. Ich möchte aber gerne im zweiten Sprite auf Aktionen im ersten Sprite reagieren können. Zitat:
Geändert von Sucht (17-10-2011 um 09:21 Uhr) | |
| | |
| | #7 (permalink) |
| Neuer User Registriert seit: Oct 2011
Beiträge: 4
|
Hi, Deine Dateien laufen ![]() meine nicht Ergänzung: Hab den Grund gefunden, die Änderungen der Weite und Höhe der einzelnen Sprites scheinen sich nicht mit den Parametern des Viewport zu vertragen. Nehme ich die Weiten weg und passe den Viewport an, ist das Problem weg. Vielen Dank für Deine Hilfe!! Geändert von Sucht (17-10-2011 um 15:48 Uhr) |
| | |
![]() |
| Lesezeichen |
| Stichworte |
| as3, container, papervision, scene |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| wie kann ich in einer for schleife mehrer Objekt einer Klasse mit unterschiedlichen | katimp | ActionScript 3 | 6 | 25-11-2008 10:57 |
| auf IE nichts zu sehen | vodan | Flash 8 | 3 | 17-05-2007 22:02 |
| nichts zu sehen im internet explorer.. | bensen | Flash Einsteiger | 3 | 17-10-2006 01:47 |
| Preloader für mehrer Szenen | Hitman86 | Flash MX | 9 | 03-07-2005 22:54 |
| mit prealoader mehrer szenen laden | jackhugo | Flash 4 und Flash 5 | 2 | 27-07-2001 13:46 |