Zurück   Flashforum > Flash > ActionScript > ActionScript 3

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 02-09-2008, 18:59   #1 (permalink)
Neuer User
 
Registriert seit: Jan 2006
Beiträge: 60
Variablenzugriff

Hi Leute,
gibt es eine Möglichkeit, in einer von mir selbst geschriebenen Klasse aus der AS-Datei auf eine Variable aus dem Flash-Dokument zuzugreifen? Also, ich habe im Flashfilm die Variable „zahl“ und eine Klasse mit einer Methode, die diese Zahl für eine Berechnung verwenden soll (die Klasse ist natürlich in einer externen AS-Datei). Wichtig ist es mir aber, dass ich diese Zahl nicht an diese Methode übergeben muss, sondern die Methode auch so Zugriff hat, so als wäre die Funktion im Flashfilm selbst und die Variable „zahl“ ist global Ein kleines Beispiel:

var zahl:int = 3;

function verdoppeln():void {
zahl *= 2;
}

Diese Funktion soll nun mehrmals im Laufe des Films ausgeführt werden (nicht direkt hintereinander), ohne dass die Variable „zahl“ der Funktion direkt übergeben wird. Die Funktion soll aber wie gesagt eine Methode einer Klasse sein und somit in einer externen AS-Datei liegen. Kann man das irgendwie so machen? Danke schon mal im Voraus.
LG
mellon ist offline   Mit Zitat antworten
Alt 02-09-2008, 19:08   #2 (permalink)
asFlasher
 
Benutzerbild von ksw24
 
Registriert seit: Jul 2006
Beiträge: 1.136
Hallo,
ich weiß nicht, ob ich dass richtig verstanden habe, aber so geht es doch:

meineKlasse.as
ActionScript:
  1. //...
  2. public var zahl:Number = 2;
  3. //...
  4.  
datei.fla
ActionScript:
  1. //...
  2. var testClass:meineKlasse = new meineKlasse();
  3. testClass.zahl *=2;
  4. //...
  5.  

Oder lieg ich da falsch?
ksw24 ist offline   Mit Zitat antworten
Alt 02-09-2008, 19:31   #3 (permalink)
Neuer User
 
Benutzerbild von _crypto_
 
Registriert seit: Mar 2006
Beiträge: 1.573
weiß nicht ob das in AS3 noch so geht,
ich hoffe doch mal nicht, nicht dass ich dir dein problem ersdchweren
will, aber sowas macht man überhaupt nicht, mit globalen variablen etc.

wieso sollte die funktion keine parameter erwarten?
so kannst du sie iwann vllt nochmal benutzen ohne das du
eine variable "zahl" hast.
Code:
// *.as
public function double(): void
{
    MovieClip(root).number *= 2;
}
vllt so. ka in AS2 konnte man noch so auf variablen zugreifen.
__________________

Currently working on:

- --- ---

-----------------------------------------------------------------
ActionScript 3.0, C++, Java, Delphi
_crypto_ ist offline   Mit Zitat antworten
Alt 02-09-2008, 23:40   #4 (permalink)
Neuer User
 
Registriert seit: Jun 2001
Ort: Stuttgart
Beiträge: 6.415
Ich bin gewöhnlich nicht derjenige, der jemanden davon überzeugen will, eine andere Lösung zu verwenden anstatt das Problem zu lösen. Aber in deinem Fall würde ich doch wirklich mal vorschlagen deinen Aufbau zu überdenken- vielleicht nicht für dein vorliegendes Projekt.
Versuche in Zukunft so eine starke Kopplung, die du gerade anstrebst zu vermeiden, dann ersparst du dir mit Sicherheit einige auftretende Probleme. Deine externe Klasse ist viel zu sehr von deiner DisplayObject Hierarchie abhängig. Eine einzige Änderung von einem Instanznamen und deine Variable könnte nicht mehr erreichbar sein.

Aber um dein Problem mal zu lösen.
Muss die Variable an der bestehenden Position abgelegt sein? Kann Sie an einer global erreichbaren Stelle liegen? Dann lege die Variable in einer statischen Klasse zum Start der Anwendung ab:
PHP-Code:
//VariablenContainer.as
//Zu empfehlen ist die Verwendung einer package Struktur
//a la  package de.abc.def{...}
//Zugriff dann global per de.abc.def.VariablenContainer.zahl
package{
   public class 
VariablenContainer{
     
//ggf. auch als Konstante über Schlüsselwort "const"
      
public static var zahl:int=0;
   }
}

//Zugriff jederzeit (auch in deiner Klasse X) über 
VariablenContainer.zahl 
Grüße
Deluxe ist offline   Mit Zitat antworten
Alt 03-09-2008, 11:18   #5 (permalink)
vermisst ein e
 
Benutzerbild von kRizzl
 
Registriert seit: Oct 2007
Beiträge: 774
uebergib doch einfach die variable an die funktion, dafuer gibts ja netterweise diese parameter-dinge
kRizzl ist offline   Mit Zitat antworten
Alt 03-09-2008, 15:47   #6 (permalink)
Neuer User
 
Registriert seit: Jan 2006
Beiträge: 60
erst mal vielen vielen Dank an alle, ich denke, ich werd es jetzt hinkriegen. Warum ich es ohne Parameterübergabe machen will, ist ein bisschen kompliziert zu erklären, ich werde es aber flexibel genug machen, dass es auch mit Parameterübergabe funktioniert, wenn die Variable "zahl" nicht vorhanden ist. Auf jeden Fall vielen Dank an alle für die Tipps, ich hab auf jeden Fall wieder was dazugelernt.
mellon ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 19:40 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele