Zurück   Flashforum > Flash > ActionScript > ActionScript 3

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 15-10-2011, 23:26   #1 (permalink)
Neuer User
 
Registriert seit: Oct 2011
Beiträge: 4
Unhappy Mehrer Papervision3d Szenen auf einer Stage, aber nichts zu sehen

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);
			
		}
	}

}
Hier meine Klasse für die 3d-Szenen:

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);
		}
	}
}
Vielen Dank für eure Hilfe.

Geändert von Sucht (15-10-2011 um 23:31 Uhr)
Sucht ist offline   Mit Zitat antworten
Alt 16-10-2011, 15:37   #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:
package 
{

    
import flash.display.Sprite;

    public class 
Main extends Sprite
    
{
        
        private var 
karteklein:Basic;
        private var 
kartegross:Basic;
        
        public function 
Main()
        {
            
init();
        }
        
        private function 
init():void
        
{
            
            
karteklein = new Basic();
            
kartegross = new Basic();
            
            
karteklein.100;

            
addChild(karteklein);
            
addChild(kartegross);
            
        }
    }


Spiel ein wenig damit rum und versuche ein Gefühl für die Positionen zu bekommen. In den 3D Szenen (viewport) werden deine Objekte zentriert positioniert. Du kannst auch die Größe des viewports einstellen. Siehe PV3D Dokumentation.

Viel Spass beim ausprobieren!
Fab4ce ist offline   Mit Zitat antworten
Alt 16-10-2011, 20:10   #3 (permalink)
Neuer User
 
Registriert seit: Oct 2011
Beiträge: 4
Question

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)
Sucht ist offline   Mit Zitat antworten
Alt 17-10-2011, 08:23   #4 (permalink)
Neuer User
 
Registriert seit: Nov 2005
Beiträge: 154
  1. Bekommst du keine Compiler Errors?
  2. Was ist denn deine Hintergrundfarbe?
  3. Wie groß ist die Auflösung deiner Bühne?
Fab4ce ist offline   Mit Zitat antworten
Alt 17-10-2011, 08:35   #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:
loader = new Loader();
defaultSWF = new URLRequest("Basic.swf");
loader.load(defaultSWF);
loader.x = 700;
loader.y = 000;
addChild(loader);

Geändert von Sucht (17-10-2011 um 09:21 Uhr)
Sucht ist offline   Mit Zitat antworten
Alt 17-10-2011, 12:18   #6 (permalink)
Neuer User
 
Registriert seit: Nov 2005
Beiträge: 154
Hört sich ja merkwürdig an.

Versuchs mal mit meinem Anhang. Such nach Unterschieden zu deiner Version und berichte uns (dem Forum).
Angehängte Dateien
Dateityp: zip pv3d_2view.zip (554,0 KB, 1x aufgerufen)
Fab4ce ist offline   Mit Zitat antworten
Alt 17-10-2011, 12:33   #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)
Sucht ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
as3, container, papervision, scene

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ä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


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:58 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele