1&1 Webhosting
Flashhilfe.de - Flash Community

Klassen und Bühneninstanzen [Flash 10]

Forum > ActionScript 3.0 > Klassen und Bühneninstanzen

 


AntwortenRegistrieren Seite1  

 15.11.2010, 13:46 
Beiträge: 43
Wohnort: Schweiz
Registriert: 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
Schlagwörter: Bühneninstanz, Klasse
 15.11.2010, 14:56Re1
Benutzerbild von springerFlashhilfe.de Moderator
Beiträge: 4906
Wohnort: zuhaus
Registriert: 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:59Re2
Beiträge: 43
Wohnort: Schweiz
Registriert: 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

ActionScript:
1extends Tabelle

und
ActionScript:
1import Tabelle


 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:34Re3
Benutzerbild von badskillFlashhilfe.de Moderator
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:33Re4
Beiträge: 43
Wohnort: Schweiz
Registriert: 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:29Re5
Benutzerbild von badskillFlashhilfe.de Moderator
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:40Re6
Beiträge: 43
Wohnort: Schweiz
Registriert: 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:10Re7
Beiträge: 43
Wohnort: Schweiz
Registriert: Oct 2010

Themenautor/in

Ich konnte das ganze nun doch noch lösen.

Man übergibt "this" an die Klasse

ActionScript:
1var 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
 

AntwortenRegistrieren Seite1  

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.
Partner Webseiten: DesignerInAction.de   Designnation.de   Mediengestalter.info   php-resource.de   phpforum.de   phpwelt.de   Pixelio.de   PSD-Tutorials.de   Tutorials.de

Haftungsausschluss   Datenschutzerklärung   Hier Werben   Impressum
© 1999-2012 Sebastian Wichmann - Flashhilfe.de