| |||||||
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: Jul 2003
Beiträge: 1.197
| PV3D DisplayObject3D.container ist null
Ich fange gerade mit PV3D an und wollte nur einen Kreis zeichnen (wenn das klappt mehrere Kreise in ein Objekt die räumlich verschoben werden). Kann mir jemand sagen, warum container null ist? ActionScript:
__________________ EDV = Ende Der Vernunft |
| | |
| | #2 (permalink) |
| Neuer User Registriert seit: Jul 2003
Beiträge: 1.197
|
Weil die public var container nur deklariert wird. Aber was muß ich bei den beiden Parametern angeben...? ActionScript:
__________________ EDV = Ende Der Vernunft |
| | |
| | #3 (permalink) |
| muh Registriert seit: Apr 2002 Ort: Freiburg / Stuttgart
Beiträge: 4.338
|
Ich glaube du zäumst das Pferd falsch herum auf. Müsstest du nicht erst den "Container" erstellen (also eine View oder Scene, oder wie sowas bei PV3D heißt) und dann dein Objekt demselben hinzufügen? Bei dem "Hinzufügen" Vorgang wird dann vermutlich in deinem Objekt die Eigenschaft "container" erst geschrieben.
__________________ »Carpe diem«, sagte der Graf. (Terry Pratchett: Ruhig Blut!) |
| | |
| | #4 (permalink) |
| Neuer User Registriert seit: Jul 2003
Beiträge: 1.197
|
Ja... ich glaube schon. Hab ich ja auch so gemacht. ActionScript:
__________________ EDV = Ende Der Vernunft |
| | |
| | #6 (permalink) |
| Neuer User Registriert seit: Jul 2003
Beiträge: 1.197
| ActionScript:
ActionScript:
ActionScript:
__________________ EDV = Ende Der Vernunft |
| | |
| | #7 (permalink) |
| muh Registriert seit: Apr 2002 Ort: Freiburg / Stuttgart
Beiträge: 4.338
|
Nein, ganz falsch ![]() (behaupte ich mal, was PV3D angeht, hab ich eigentlich keine Ahnung, ich spreche nur aus AS3 Erfahrung) Erstens kann die Variable im Konstruktor technisch gesehen keinen Wert haben. Woher sollte sie diesen bekommen? Es handelt sich um ein frisches Objekt, das einzige was vor der Stelle passiert ist, an der du das trace ausführst ist, dass der Konstruktor der super-Klasse durchgelaufen ist. Aber wie soll dieser etwas vom Container wissen? Soll er ihn erraten? addChild hast du zu diesem Zeitpunkt noch nicht aufgerufen, alles könnte also der zukünftige Container sein. Zweitens wird der container wenn dann, im aufruf von addChild geschrieben, denn davor macht der Begriff "container" ja noch garkeinen Sinn, es gibt ja noch garkeine "Ist Teil von X" bzw. "Enhält Y" Beziehung. Wenn du also den Code suchst, der die container-Variable schreibt, dann musst du in der addChild-Methode der Scene nachsehen. Einfach überprüfen, ob ich mit diesen Vermutungen recht habe, kannst du, indem du einfach mal nach dem scene.addChild Aufruf (also dem in der createSomeObjectsOnTheScene Methode) tCircle.container ausgibst.
__________________ »Carpe diem«, sagte der Graf. (Terry Pratchett: Ruhig Blut!) |
| | |
| | #8 (permalink) | |
| Neuer User Registriert seit: Jul 2003
Beiträge: 1.197
| Zitat:
container ist eine Eigenschaft von DisplayObject3D, wie man in der PV3D Dokumentation nachlesen kann. Und natürlich kann eine Variable einer Klasse schon im Konstruktor einen Wert haben. ActionScript:
Also: Ich habe KEIN Problem mit AS3, sondern ich kenne mich mit Papervision3D (noch) nicht aus. Dieser Thread richtet sich also an Leute, die sich mit Papervison3D auskennen. Sorry.
__________________ EDV = Ende Der Vernunft | |
| | |
| | #9 (permalink) |
| muh Registriert seit: Apr 2002 Ort: Freiburg / Stuttgart
Beiträge: 4.338
|
Hast du es denn überprüft, so wie ich im letzten Satz vorgeschlagen habe? EDIT: das der Container nicht bekannt sein _kann_, ist dir jetzt nicht klargeworden, oder wie?
__________________ »Carpe diem«, sagte der Graf. (Terry Pratchett: Ruhig Blut!) Geändert von Janoscharlipp (06-06-2009 um 21:58 Uhr) |
| | |
| | #10 (permalink) | |||
| Neuer User Registriert seit: Jul 2003
Beiträge: 1.197
|
Ja, habe ich. Aber nur um auf Nachfrage sagen zu können, daß ich es getan habe (ist auch da null, was völlig logisch ist!). Und ich habe keine Ahnung, wie Du darauf Zitat:
Vielleicht muß ich es auch noch mal deutlich erklären (eigentlich kann man das meinen letzten Posts entnehmen): Es geht hier nicht um irgendeinen "Container" *, sondern um eine Eigenschaft der DisplayObject3D Klasse, die container heißt. Diese Eigenschaft ist bekannt, jedoch null, weil ihr in der Klasse DisplayObject3D nichts zugewiesen wird. Zitat:
Zitat:
Entschuldigung, aber das wird jetzt gerade etwas nervig. Wo mein Problem liegt, ist in meinem zweiten Post genau beschrieben. * Ich pflege die Dinge beim Namen zu nennen: Ich nenne MovieClips oder Sprites, die etwas enthalten sollen, nicht "Container", sondern "MovieClip" oder "Sprite".
__________________ EDV = Ende Der Vernunft Geändert von hmpf (07-06-2009 um 00:12 Uhr) | |||
| | |
| | #11 (permalink) |
| muh Registriert seit: Apr 2002 Ort: Freiburg / Stuttgart
Beiträge: 4.338
|
kaum zu glauben, dass ich hier nochmal antworte, aber wie gesagt, als PV3D-Unbedarfter habe auch ich die Hoffnung hier was zu lernen. Konkret zu deiner Frage scheint mir der einfachste Weg an einen Container zu kommen der folgende zu sein: PHP-Code: Dein eigentliches Problem aber (einen Kreis im Raum zeichnen, wenn ich das richtig sehe) ist damit soweit ich das sehe nicht gelöst, einfach in den container malen geht nicht. Der nahe liegende Ansatz wäre für mich, eine Plane zu erstellen, dieser ein MovieMaterial zu geben, und eben dieses Material deinen Circle darstellen zu lassen. (Das funktioniert auch, ich vermute allerdings (hoho) das dann das gezeichnete den Umweg über eine Bitmap-Data gemacht hat). Ein anderer Ansatz wäre, ein VectorShapeMaterial zu verwenden, in eine VectorShape3D kann man mit der Graphics3D-Klasse scheinbar einfach reinmalen. Zu meiner Vermutung, dass container beim addChild initialisiert würde, kann ich dich nur noch auf SceneObject3D.addChild und DisplayObjectContainer3D.addChild verweisen, dort werden einige relevante Eigenschaften (parent, root, scene) geschrieben (ebenso im Flex-Framework übrigens) meine Behauptung war also nicht aus der Luft gegriffen.
__________________ »Carpe diem«, sagte der Graf. (Terry Pratchett: Ruhig Blut!) |
| | |
| | #12 (permalink) |
| Neuer User Registriert seit: Jul 2003
Beiträge: 1.197
| ActionScript:
__________________ EDV = Ende Der Vernunft |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |