Flashhilfe.de - Flash Community

Klassen und Bühneninstanzen [Flash 10]

 


AntwortenRegistrieren Seite1  

tobi-848#1
Benutzerbild von tobi-848
Beiträge: 43
Wohnort: Schweiz
Registriert: Oct 2010

15.11.2010, 13:46

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
Werbung
Beiträge: 0
Registriert: Feb 2016


springer#2
Benutzerbild von springer
Beiträge: 4909
Wohnort: zuhaus
Registriert: Apr 2004

15.11.2010, 14:56

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...
tobi-848#3
Benutzerbild von tobi-848
Beiträge: 43
Wohnort: Schweiz
Registriert: Oct 2010

Themenautor/in

15.11.2010, 15:59

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
badskill#4
Benutzerbild von badskillFlashhilfe.de Moderator
Beiträge: 5285
Wohnort: Bernau (bei Berlin)
Registriert: Nov 2002

15.11.2010, 16:34

Hi,
zeig doch mal bitte die gesamte Klasse. Ich kann dir nicht ganz folgen.
Werbung
Beiträge: 0
Registriert: Feb 2016


tobi-848#5
Benutzerbild von tobi-848
Beiträge: 43
Wohnort: Schweiz
Registriert: Oct 2010

Themenautor/in

16.11.2010, 08:33

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
badskill#6
Benutzerbild von badskillFlashhilfe.de Moderator
Beiträge: 5285
Wohnort: Bernau (bei Berlin)
Registriert: Nov 2002

16.11.2010, 09:29

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.
tobi-848#7
Benutzerbild von tobi-848
Beiträge: 43
Wohnort: Schweiz
Registriert: Oct 2010

Themenautor/in

21.11.2010, 19:40

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
tobi-848#8
Benutzerbild von tobi-848
Beiträge: 43
Wohnort: Schweiz
Registriert: Oct 2010

Themenautor/in

19.01.2011, 17:10

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

AntwortenRegistrieren Seite1  

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.

 
Ähnliche Beiträge zum Thema
Partner Webseiten: art-and-law.de  Mediengestalter.info   php-resource.de   phpforum.de   phpwelt.de   Pixelio.de   Scubacube.de  
Haftungsausschluss   Datenschutzerklärung   Hier Werben   Impressum
© 1999-2019 Sebastian Wichmann - Flashhilfe.de