Einer der Vorteile von Actionscript 3 ist das flexibel einsetzbare Eventsystem. Jedoch benutzt man selten die Funktionen des Event-Objektes! So lassen sich mehrere EventListener mit einer einzigen Funktion verarbeiten. Ausgangspunkt meines Beitrages ist eine kleine Homepage mit 3 Buttons und den Seiten: News, „Über mich“ und Impressum.
Um alle Items eines Arrays, Vektors oder Objektes zu durchlaufen, verwendet man normalerweise eine For-Each-Schleife wie diese:
var myArray:Array = ["AxxG", "rockt", "total", "!!!"];
for each (var item:String in myArray)
{
trace(item);
// Ausgabe: AxxG rockt total !!!
}
var myNumArray:Array = [1, 2, 3, 4, 5, 6, 7];
for each (var item:uint in myNumArray)
{
trace(item);
// Ausgabe 1 2 3 4 5 6 7
}
Was passiert, wenn man unterschiedliche Datentypen in einem Array verwendet? Genau, eine Exception wird geworfen. Nicht sehr schön für den Programmierer, aber hier kommt die Lösung:
var myArray:Array = [111, "AxxG", "rockt", "mindestens", 1000000000000, "Mal", "!!!", 111];
for each (var item:* in myArray)
{
if (item is String)
{
trace("Das Item ist ein String mit dem Wert: " + item);
}
else if (item is Number)
{
trace("Das Item ist ein Number mit dem Wert: " + item);
}
}
/* Ausgabe
* Das Item ist ein Number mit dem Wert: 111
* Das Item ist ein String mit dem Wert: AxxG
* Das Item ist ein String mit dem Wert: rockt
* ...
*/
Dieser kleine Codeschnipsel überprüft den Pfad / die URL zu eurer SWF-Datei. Sollte dieser nicht mit euren Vorgaben übereinstimmen, wird automatisch auf eine andere Html-Seite umgeleitet. Eine andere Anwendung ist eine URL-abhängige Lokalisierung.
(mehr …)
Bei der Programmierung von dynamische Anwendungen ist es immer sinnvoll, änderbare Texte und Variablen in externen Dateien auszulagern. Auf diese Weise kann man dynamische Anwendungen erstellen, ohne die ActionScript-Dateien zu bearbeiten oder neu kompilieren zu müssen. Weiter geht es nach dem Break…
Jeder kennt die Statistiken von Adobe. Angeblich besitzen 99 % aller internetfähigen Computer das Flash Player-Plugin. Aber wie Winston Churchill schon gesagt hat: “Traue keiner Statistik, die du nicht selbst gefälscht hast.”
Wie Jeder gute Blogger, Programmierer oder Administrator, sammle ich mit Google Analytics Daten von meinen Blogbesuchern. Dabei werden viele verschiedene Daten mitgeloggt, wie die Auflösung, die Herkunft oder das Betriebssystem. Eine kleine Auswertung der Daten und die Wahrheit über die Verbreitung findet ihr nach dem Break.
In Zeiten, in denen Firmen den Leuten vorschreiben, welche Plug-ins, Techniken und Co sie verwenden sollen, ist es an der Zeit sich zu erheben! Apple will kein Flash-Plugin für iPhone, iPad, iPod und Air Book?! O.o?
Ok, dann will ich keine Apple-Produkte auf meiner Webseite! Dieses HowTo zeigt euch, wie ihr sie ALLE aussperrt. Da muss Steve Jobs und Co schon Bootcamp mit Windows oder Linux starten, um meine/eure Webseite anzuzeigen. Nach dem Break geht es weiter…
(mehr …)
Nach JavaScript kommt nun der Beitrag für die Schnittstelle zu PHP. Bitte beachten:
Nach dem Break geht es weiter!
Dieser Beitrag ist für Profis und Fortgeschrittene im Bereich Programmierung gedacht. Er gibt einen groben Überblick über die Syntax, Notation und Aufbau der Skriptsprache Actionscript 3. Weitere Informationen, die Dokumentation und natürlich den Link zur API findet hier:
Die Übersicht findet ihr nach dem Break!
import flash.display.Loader;
import flash.events.Event;
import flash.events.IOErrorEvent;
import flash.events.ProgressEvent;
import flash.net.URLRequest;
// Pfad zum Objekt, was geladen werden soll (relativ)
var url:String = "/pic/meinBild.jpg";
var reg:URLRequest = new URLRequest(url);
var myLoader:Loader = new Loader();
// EventListener
// Wird ausgeloest, wenn das Bild fertig geladen ist
myLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, fertig);
// Wird ausgeloest, wenn ein Fehler aufgetreten ist
myLoader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, fehler);
// Wird ausgeloest, während des Ladens
myLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, update);
// Ladevorgang starten
myLoader.load(reg);
function fertig(e:Event):void{
// Inhalt der Stage hinzufügen
this.addChild(myLoader);
// oder
this.addChild(e.currentTarget.content);
}
function fehler(e:IOErrorEvent):void{
trace("Es ist ein Fehler aufgetreten: " + e);
}
function update(e:ProgressEvent):void{
var total:Number = e.bytesTotal;
var loaded:Number = e.bytesLoaded;
var percent:Number = Math.floor((loaded*100)/total);
// Ausgabe während des Ladens
trace("Es wurden " + loaded + "Bytes von " + total +" Bytes geladen. Also " + percent + "%");
}