Klassen und Bühneninstanzen [Flash 10]
15.11.2010, 13:46
Beiträge: 43 Wohnort: SchweizRegistriert: Oct 2010 Klassen und Bühneninstanzen
Hallo miteinander
Das Thema wurde hier schon häufig angesprochen. Leider finde ich keine vernünftige Lösung.
Wenn ich in einer Tochterklasse eine Bühneninstanz hole und diese per addChild() auf der Bühne platziere funktioniert das nicht.
Hier mein Code:
ActionScript: 1 2 3 4 5 6 7 import Tabelle;
public function getTabelle()
{
var myTabelle:Tabelle = new Tabelle();
this .addChild(myTabelle);
}
ActionScript: 1 2 var myRequest:req= new req();
myRequest.getTabelle();
Tabelle ist der mc-Klassenname.
Bitte um Rat.
Freundliche Grüsse
15.11.2010, 14:56 Re1 Beiträge: 4906 Wohnort: zuhausRegistriert: Apr 2004 hi,
willst du denn "tabelle" zu "req" adden?
oder so?
ActionScript: 1 2 3 4 5 public function getTabelle( obj:DisplayObjectContainer )
{
var myTabelle:Tabelle = new Tabelle();
obj.addChild(myTabelle);
}
ActionScript: 1 2 var myRequest:req= new req();
myRequest.getTabelle( this );
ich versteh aber den sinn dahinter nicht ganz...
lieber chips essen und danach voller zweifel sein, als voller zweifel chips essen...
15.11.2010, 15:59 Re2
Beiträge: 43 Wohnort: SchweizRegistriert: Oct 2010 Themenautor/in Meine Frage ist warum kann ich von der Tochterklasse nicht auf den mc "Tabelle" zugreifen (Klasseninstanz).
Theoretisch müsste das ja klappen, wenn ich die Anweisung
und
verwende.
Ich kann beispielsweise auch auf die MovieClip-Klasse zugreifen, sofern ich sie importiere.
Habe ich da etwas falsch verstanden?
Besten Dank für deine Antwort
nicht sichtbar bei eingeloggten Mitgliedern
15.11.2010, 16:34 Re3 Beiträge: 5285 Wohnort: Bernau (bei
Berlin)Registriert: Nov 2002 Hi,
zeig doch mal bitte die gesamte Klasse. Ich kann dir nicht ganz folgen.
16.11.2010, 08:33 Re4
Beiträge: 43 Wohnort: SchweizRegistriert: Oct 2010 Themenautor/in Warum kann ich aus einer Klasse nicht auf auf root oder Bühneninstanzen zugreifen? Hier ein Beispiel:
FlashVars.as
ActionScript: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 package
{
import flash .display.Loader;
import flash .display.LoaderInfo;
public class FlashVars
{
public var myFlashVars:Object = new Object ();
public function FlashVars()
{
//leer
}
public function getFlashVars()
{
try
{
var flashVars:Object = LoaderInfo(this .root.loaderInfo).parameters;
this .myFlashVars = flashVars;
}
catch (error:Error )
{
//leer
}
}
}
}
ActionScript: 1 2 var myFlashVars:FlashVars = new FlashVars();
var mySeite:String = myFlashVars.getFlashVars();
ActionScript: 1 ...\FlashVars.as, Zeile 19 1119: Zugriff auf eine möglicherweise nicht definierte Eigenschaft root über einen Verweis mit statischem Typ FlashVars
Danke Geändert von tobi-848 am 16.11.10 um 08:37 Uhr
16.11.2010, 09:29 Re5 Beiträge: 5285 Wohnort: Bernau (bei
Berlin)Registriert: Nov 2002 root ist kein globales Objekt auf dem man an beliebiger Stelle zugreifen kann. Diese Eigenschaft ist gebunden an einem vorhandenen DisplayObject.
Willst du in einer Klasse darauf Zugriff haben, musst du ihr eine Referenz übergeben oder deine Klasse selber ist ein DisplayObject, welches wiederum auf der stage liegt.
nicht sichtbar bei eingeloggten Mitgliedern
21.11.2010, 19:40 Re6
Beiträge: 43 Wohnort: SchweizRegistriert: Oct 2010 Themenautor/in Wie soll das gehen?
Der Beitrag von "Springer" ist ein guter Ansatz, funktioniert aber nicht:
ActionScript: 1 2 3 4 5 public function getTabelle( obj:DisplayObjectContainer )
{
var myTabelle:Tabelle = new Tabelle();
obj.addChild(myTabelle);
}
ActionScript: 1 2 var myRequest:req= new req();
myRequest.getTabelle( this );
mfg
19.01.2011, 17:10 Re7
Beiträge: 43 Wohnort: SchweizRegistriert: Oct 2010 Themenautor/in Ich konnte das ganze nun doch noch lösen.
Man übergibt "this" an die Klasse
ActionScript: 1 var myRequest:req= new req(this );
Danach kann man über addChild neue Objekte hinzufügen:
ActionScript: 1 2 3 4 public function klassenkonstruktor( obj:DisplayObjectContainer )
{
obj.addChild(myTabelle);
}
Falls man bestehende Bühneninstanzen ansprechen möchte nimmt man am besten getChildByName:
ActionScript: 1 2 3 4 public function klassenkonstruktor( obj:DisplayObjectContainer )
{
trace (obj.getChildByName("bühneninstanz" ).x );
}
Mfg
Themen
Ähnliche Beiträge zum Thema 15.06.2010 - Sebastian
16.05.2011 - Metapher
14.01.2010 - drflash
30.11.2009 - Stachlbeere
Flashhilfe.de
Flash Platform Tipps & Tutorials
Flash Platform
Andere Programmiersprachen
Jobangebote
Diskussionen
Flashhilfe News
Regeln & Bedingungen