Flashhilfe.de - Flash Community

AS3: Variable für ganzes Dokument definieren?! [Flash 10]

 


AntwortenRegistrieren Seite1  

zellerjohannes#1
Benutzerbild von zellerjohannes
Beiträge: 149
Registriert: Dec 2005

07.02.2010, 16:36

Hallo
Auf einer neuen Website definiere ich die Navigationsauswahl in einer Variable. Nun muss ich in einem anderen MovieClip diese Variable auslesen und dementsprechend behandeln, doch es gibt mir dann den Fehler, dass diese Variable nicht definiert sei, aus.
Kann ich eine Variable für das ganze Flash-Dokument definieren bzw. ändern?
Oder wie kann ich diese auslesen?

In der offiziellen AS3-Hilfe von Flash habe ich diese Global-Variable gefunden, doch das funktioniert auch nicht!

Mein Beispiel:
definieren:
ActionScript:
1
2
3
4
function button1(e:Event):void   {
   var strGlobal:String = "Home";
}
...

auslesen:
ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
stop();
if (strGlobal == "Home") {
    trace("Home");
}
else if (strGlobal == "About") {
    trace("About");
}
else if (strGlobal == "Gallery") {
    trace("Gallery");
}
else if (strGlobal == "Audio") {
    trace("Audio");
}
else if (strGlobal == "Contact") {
    trace("Contact");
}
Werbung
Beiträge: 0
Registriert: Feb 2016


zellerjohannes#2
Benutzerbild von zellerjohannes
Beiträge: 149
Registriert: Dec 2005

Themenautor/in

07.02.2010, 20:11

Weiss hier niemand, wie man mit Variablen in Actionscript 3.0 umgeht?

gruss
jz
Sleepingbeast#3
Benutzerbild von Sleepingbeast
Beiträge: 579
Wohnort: Halle
Registriert: Apr 2005

07.02.2010, 20:24

Hallo Johannes,

du musst deine "globale" Variable außerhalb einer Funktion definineren, da sie sonst nur innerhalb der Funktion existiert. Ungefähr so:

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
var seite:String;

b1.addEventListener(MouseEvent.MOUSE_DOWN, setB1);
b2.addEventListener(MouseEvent.MOUSE_DOWN, setB2);
b3.addEventListener(MouseEvent.MOUSE_DOWN, setB3);
b4.addEventListener(MouseEvent.MOUSE_DOWN, setB4);

function setB1(e:MouseEvent):void {
   seite = "B1";
   trace(seite);
}

function setB2(e:MouseEvent):void {
   seite = "B2";
   trace(seite);
}

function setB3(e:MouseEvent):void {
   seite = "B3";
   trace(seite);
}

function setB4(e:MouseEvent):void {
   seite = "B4";
   trace(seite);
}


Patrick
_________________________________________________________
Um Rekursion wirklich zu verstehen, muss man zuerst Rekursion verstehen.
null != 'null' != 0 != '0'
zellerjohannes#4
Benutzerbild von zellerjohannes
Beiträge: 149
Registriert: Dec 2005

Themenautor/in

07.02.2010, 22:01

Danke! Aber ich habe immer noch keinen Zugriff vom anderen MovieClip, wo ich diese Variable für den Inhalt auslesen will..!?

Gruss
jz
Werbung
Beiträge: 0
Registriert: Feb 2016


niquito12#5
Benutzerbild von niquito12
Beiträge: 901
Wohnort: Nether-Bavaria
Registriert: Jun 2008

08.02.2010, 11:00

In der Instanz deines Objektes kannst du Variablen als "public" definieren. Du kannst auf die Instanz mit instanzname.variablenname darauf zugreifen.

Üblicherweise macht man das jedoch mit Settern und Gettern. Hier kannst du auch festlegen, ob die Variable nur gelesen nur geschrieben oder beides gleichzeitig werden darf.


Sleepingbeast hat Dir Setter gezeigt, mit denen du Variablen von außerhalb der Klasse setzen kannst. Ein Getter wäre folgendes:

ActionScript:
1
2
3
4
public seite:String;
function gettB4():String {
  return seite;
}


Der Aufruf folgt also:
ActionScript:
1var returnwert:String = instanzname.getB4();
Qt! www.adrianslaboratory.net
springer#6
Benutzerbild von springer
Beiträge: 4909
Wohnort: zuhaus
Registriert: Apr 2004

08.02.2010, 11:27

so wäre das noch ein klein wenig eleganter:
ActionScript:
1
2
3
4
private var _seite:String
public function get seite():String{
    return this._seite;
}


aufruf:

ActionScript:
1var returnwert:String = instanzname.seite;
lieber chips essen und danach voller zweifel sein, als voller zweifel chips essen...
zellerjohannes#7
Benutzerbild von zellerjohannes
Beiträge: 149
Registriert: Dec 2005

Themenautor/in

08.02.2010, 17:58

Verstehe das aber nicht ganz, wo definiere ich jetzt seite mit "Home" etc.?
Kann mir das jemand vielleicht direkt an meinem Beispiel zeigen..bin noch sehr neu bei AS3 und überhaupt bei Flash.

Gruss
jz

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