IT-Academy Logo
Sign Up Login Help
Home - Programmieren - Actionscript - ActionScript: Werte von Objekt-Eigenschaften ändern



ActionScript: Werte von Objekt-Eigenschaften ändern

Ein Tutorial für Anfänger das zeigt wie die Werte von Eigenschaften eines Objekts geändert werden können, und wie man das Script abwärtskompatibel macht.


Autor: Patrick Faes (dreamer)
Datum: 08-11-2004, 18:48:52
Referenzen: siehe Text
Schwierigkeit: Anfänger
Ansichten: 5417x
Rating: 8 (1x bewertet)

Hinweis:

Für den hier dargestellte Inhalt ist nicht der Betreiber der Plattform, sondern der jeweilige Autor verantwortlich.
Falls Sie Missbrauch vermuten, bitten wir Sie, uns unter missbrauch@it-academy.cc zu kontaktieren.

[Druckansicht] [Als E-Mail senden] [Kommentar verfassen]



Einführung

Die Animationssoftware Flash von Macromedia, welches ActionScript zur Verfügung stellt, wird im Netz immer populärer. Die Anwendungsmöglichkeiten gehen von einfachen Introfilmen und Bildergalerien bis zu kompletten Auswahlmenüs und Spielen. Der fundamentale Unterschied ist die Interaktivität. Einfache Animationen laufen nach einem bestimmten Schema ab. Interaktive Anwendungen dagegen nicht: der Verlauf wird dadurch bestimmt was der Benutzer gerade macht, z.B. etwas anklicken, der Mauszeiger bewegen usw. (dies nennt man Anwenderereignisse).

Dies stellt an die Entwickler unterschiedliche Anforderungen. Wenn z.B. während einer Animation die Farbe oder Position eines Objekts geändert werden soll, so kann man diese sehr einfach so animieren. In einer interaktiven Anwendung dagegen, muss man per ActionScript reagieren. Dabei ändert man eine Eigenschaft (Englisch: Property) eines Objekts, wie z.B.: Höhe, Farbe, Position usw.

Die Syntax

Um die Eigenschaften eines Objektes zu ändern (oder in eine Variable zu speichern), gibt es in ActionScript zwei Möglichkeiten.
var hoehe = grafik._height;
grafik._height = hoehe + 16;
Die erste Methode kennt man auch von JavaScript. Man kann eine Eigenschaft ansprechen über Objekt.Eigenschaft (der Punkt ist dabei sehr wichtig). Zuerst kommt der Name eines Objekts (oder Instanz) und danach ein Punkt und die Eigenschaft. JavaScript'ler sollen dabei den Unterstrich vor der Eigenschaft beachten.

Die zweite Möglichkeit in ActionScript Werte von Eigenschaften aus zu lesen oder zu ändern, sind die eingebaute Funktionen getProperty() und setProperty().
getProperty( "grafik" , _height );
setProperty( "grafik" , _height , "50");
Die Funktion getProperty() holt den Wert einer Eigenschaft eines Objekts, während setProperty() den Wert einer Eigenschaft ändert.
Die Funktionen haben die Parameter 'Objekt' und 'Eigenschaft' gemeinsam. setProperty() (beachten Sie immer die Schriftgrößen) hat zusätzlich den neuen Wert der Eigenschaft als dritten Parameter.

Die Frage die Sie sich jetzt wohl stellen werden, ist die warum es in ActionScript zwei Möglichkeiten gibt Werte von Eigenschaften zu ändern. Die erstere ist die veraltete Syntax, die ab Flash 5 ersetzt wurde durch zweitere. Um Abwärtskompatibel zu bleiben, unterstützen die neuere Versionen von Flash die veraltete Syntax noch.

Die Version des installierten Flash Players erkennen

Obwohl die neuere Versionen von Flash die veraltete Syntax noch unterstützen, sollte man den Code dennoch so bauen, dass in allen Versionen die korrekte Syntax funktioniert, sodass man nachher (wenn neuere Versionen von Flash auf dem Markt kommen die die veraltete Syntax nicht mehr unterstützen) nichts mehr ändern muss (denn das wäre eine sehr zeitraubende Angelegenheit).

Leider bietet ActionScript keine eingebauten Funktion um die Version des installierten Flash Players zu ermitteln. Es gibt da eine mehr oder weniger funktionierende Lösung mit dem JavaScript-Objekt mimeTypes (mehr dazu), in diesem Fall allerdings reicht ein Trick in ActionScript, der von Macromedia wohl nicht beabsichtigt war:
Test = "1" + "1";
Sie glauben jetzt wohl "der Spinnt doch!". Nein, tu ich nicht. Ich weiß, dass dies sehr verwirrend ist, aber ich werde es mal erklären:

Das Resultat der Berechnung ist 2 (1 + 1). In neuere Versionen von Flash wird dies allerdings anders interpretiert, weil die Zahlen zwischen Anführungszeichen stehen. Die Daten sind dann nicht mehr vom Typ INTEGER (Ganzzahl), sondern vom Typ STRING (Zeichenkette), und das Resultat ist dann 11. Genaueres lesen Sie im Artikel ActionScript: Variablen.

Der Code zum Testen sieht also so aus:
Test = "1" + "1";


if (Test == 11) //neuere Versionen von Flash, ab Flash 5
  {}
else   //wenn Test also gleich 2 ist
  {}
Der erste Codeblock wird nur ausgeführt ab Flash 5, der zweite Codeblock nur von älteren Versionen.

Ein Beispiel wobei jeweils nur die alte bzw. neue Syntax verwendet wird:
Test = "1" + "1";

if (Test == 11)
  {
  var hoehe = getProperty( "grafik" , _height );
  var hoehe = hoehe + 15;
  setProperty( "grafik" , _height , "hoehe" );
  }
else
  {
  var hoehe = grafik._height;
  var hoehe = hoehe + 15;
  grafik._height = hoehe;
  }


[back to top]



Userdaten
User nicht eingeloggt

Gesamtranking
Werbung
Datenbankstand
Autoren:04508
Artikel:00815
Glossar:04116
News:13565
Userbeiträge:16552
Queueeinträge:06246
News Umfrage
Ihre Anforderungen an ein Online-Zeiterfassungs-Produkt?
Mobile Nutzung möglich (Ipone, Android)
Externe API Schnittstelle/Plugins dritter
Zeiterfassung meiner Mitarbeiter
Exportieren in CSV/XLS
Siehe Kommentar



[Results] | [Archiv] Votes: 1154
Comments: 0