Home
PDF-Dokument - beim O'Reilly Verlag
Contents
1. Praxisbeispiel Bestellannahme und G stebuch 343 if yamaStk Yamaha gekauft yamaPr yamaStk 399 summe yamaPr echo lt tr gt n echo lt td gt yamaStk lt td gt n echo lt td gt Yamaha Halbakustik Gitarre lt td gt n echo lt td align right gt 399 EUR lt td gt n echo lt td align right gt yamaPr EUR lt td gt n echo lt tr gt n if ampStk erst rker gekauft ampPr ampStk 599 summe ampPr echo lt tr gt n echo lt td gt ampStk lt td gt n echo lt td gt Marshall Kofferverst amp auml rker lt td gt n echo lt td align right gt 299 EUR lt td gt n echo lt td align right gt ampPr EUR lt td gt n echo lt tr gt n if kabStk Kabel gekauft kabPr kabStk 14 summe kabPr echo lt tr gt n echo lt td gt kabStk lt td gt n echo lt td gt Gitarrenkabel 3 m lt td gt n echo lt td align right gt 14 EUR lt td gt n echo lt td align right gt kabPr EUR lt td gt n echo lt tr gt n if buchStk Lehrbuch gekauft buchPr buchStk 19 summe buchPr echo lt tr gt n echo lt td gt buchStk lt td gt n echo lt td gt Buch amp quot Rock Gitarre quot lt td gt n echo lt td align right gt 19 EUR lt td gt n echo lt td align right gt buchPr
2. 338 Kapitel 10 Interaktion mit Webserver Anwendungen Der R ckgabetyp der Funktion ist Number n mlich die jeweils n chste Zeilennum mer Innerhalb des Funktionrumpfes wird zun chst berpr ft ob der aktuelle Kno ten x ein Men punkt ist Dazu wird seine Eigenschaft nodeType getestet 1 ist ein XML Element w hrend 3 f r normalen Text steht Au erdem muss die Eigenschaft nodeName in diesem Fall der Elementname den Wert item haben if x nodeType 1 amp amp x nodeName item Ist beides der Fall dann werden zun chst die Werte der beiden Attribute href und caption ermittelt dazu dient das Array attributes dessen Indizes die Attributna men sind var href String x attributes href var cap String x attributes caption Die n chste Zeile erstellt eine Kopie der Movieclip Instanz item Die Methode clip duplicateMovieClip ben tigt als Argumente einen individuellen Namen sowie eine Tiefe Darstellungsstufe die die berlagerung auf der B hne regelt beides wird hier mit Hilfe der Variablen row gebildet so dass die einzelnen Clip Kopien itemo item und so weiter hei en und entsprechend durchnummerierte Tiefen besitzen Die Kopieranweisung lautet insgesamt var theltem MovieClip _root item duplicateMovieClip item row row NN Sie m ssen streng darauf achten jede Tiefe nur einmal zu verwenden andernfalls werden vorhandene Movieclip Instanzen ersetzt Die Variable theltem v
3. Wenn eine Klasse durch Vererbung von einer anderen abgeleitet wird muss der Zusatz extends Elternklasse verwendet werden Weiter unten im Abschnitt ber Vererbung wird die Klasse LKW von Auto abgeleitet der Rahmen ihrer Deklaration sieht so aus class LKW extends Auto Elemente die LKW von Auto unterscheiden Wie bereits erw hnt m ssen ActionScript Klassendefinitionen in einer separaten as Datei gespeichert werden die genauso hei en muss wie die Klasse einschlie lich Gro und Kleinschreibung und standardm ig im gleichen Verzeichnis liegt wie die Flash Filme die darauf zugreifen diese unter Film exportieren beziehungsweise auf der Registerkarte s Flash in den Einstellungen f r Ver ffentlichungen w hlen Klicken Sie neben der Auswahl ActionScript 2 0 auf Einstellungen und w hlen Sie Ihren Classpath Mit Hilfe der Plus Schaltfl che k nnen Sie Pfade manuell eingeben w hrend das Fadenkreuz einen Ordner wahldialog ffnet W Um Klassen aus anderen Verzeichnissen einzubinden k nnen Sie Ein spezieller Modifikator f r Klassendefinitionen ist dynamic Er erlaubt es Klassen zur Laufzeit um beliebige Elemente zu erweitern Im Wesentlichen existiert dynamic Klassen entwerfen und programmieren 241 um Instanzen eingebauter Klassen wie MovieClip Array oder Object nach Bedarf um Elemente zu erg nzen eine Anweisung wie meinClip variable Wert macht sich genau dies zunutze Sie k nne
4. wird eine Klasse definiert Es handelt sich um einen Datentyp beziehungsweise eine Vorlage zum Erstellen von Objekten einer bestimmten Sorte Die Klasse kann von einer anderen Klasse abgeleitet sein Vererbung in diesem Fall m ssen nur Unterschiede und Erg nzungen neu programmiert werden 2 Die Datenstruktur wird in Form so genannter Eigenschaften oder Attribute innerhalb der Klasse gespeichert Es handelt sich um Variablen auf die in der Regel kein direkter Zugriff von au en besteht In Einzelf llen k nnen Sie aller dings auch ffentliche Eigenschaften definieren denken Sie nur an die im vori gen Kapitel besprochenen MovieClip Eigenschaften wie alpha oder rotation Objektorientierte Programmierung mit ActionScript 233 3 Wenn mit Hilfe des bereits intuitiv verwendeten Operators new ein neues Objekt einer Klasse erstellt wird wird eine spezielle Funktion aufgerufen n m lich der Konstruktor Um einen eigenen Konstruktor zu definieren m ssen Sie innerhalb der Klasse eine Funktion erstellen die denselben Namen tr gt wie die Klasse selbst Der Konstruktor wird f r Initialisierungsaufgaben eingesetzt beispielsweise um den Eigenschaften ihre Anfangswerte zuzuweisen 4 Die ffentliche Funktionalit t der Klasse wird durch ihre Methoden bereitge stellt Dies sind im Grunde beliebige Funktionen die sp ter ber die aus der Klasse erzeugten Objekte aufgerufen werden 5 Nachdem die Klasse erstellt wurde k n
5. u Neben den Texteingabefeldern k nnen auch die im n chsten Unter abschnitt vorgestellten Komponenten in die Tab Reihenfolge mit s aufgenommen werden Dazu besitzen auch sie die Eigenschaften tabIndex und tabEnabled Wenn Sie mehrzeilige Textfelder per ActionScript mit Text f llen passt sich deren H he nicht an die Textmenge an wie es in der Flash Arbeitsumgebung der Fall ist Stattdessen wird immer nur ein Teil des Textes angezeigt Standardm ig sind Flash Textfelder nicht mit Rollbalken zum Erreichen des restlichen Textes ausge stattet Daf r k nnen Sie sich selbst individuelle Scroll Bedienelemente program mieren indem Sie die Eigenschaften scroll und maxscroll eines Textfeldes benutzen scroll bestimmt welche Zeile des Gesamttextes zurzeit am oberen Rand des Feldes angezeigt wird w hrend maxscroll die Nummer der letzten m glichen Zeile angibt Wenn Sie einer Schaltfl che folgenden Code zuweisen wird der Text des Textfeldes vielText bei jedem Klick um eine Zeile nach oben gerollt bis die letzte Zeile erreicht ist on release if vielText scroll lt vielText maxscroll vielText scroll Eine Schaltfl che f r die andere Richtung k nnten Sie dagegen mit diesem Code ausstatten on release if vielText scroll gt 1 vielText scroll 2 Neben scroll und maxscroll besitzen Textfelder noch einige weitere Optionen die sich auf das Scrollen beziehen dies w rde hier allerdings z
6. EUR lt td gt n echo lt tr gt n Nersandkostenpflichtig if summe lt 50 summe 5 echo lt tr gt lt td colspan 3 gt zzgl Versandkosten lt td gt echo lt td align right gt 5 EUR lt td gt lt tr gt n 344 Kapitel10 Interaktion mit Webserver Anwendungen Gesamtsumme echo lt tr gt lt td colspan 3 gt lt b gt Gesamtsumme lt b gt lt td gt echo lt td align right gt lt b gt summe EUR lt b gt lt td lt tr gt n Mwst mwst round summe 116 16 2 echo lt tr gt lt td colspan 3 gt incl 16 Mehrwertsteuer lt td gt echo lt td align right gt mwst EUR lt td gt lt tr gt n gt lt table gt lt br gt Lieferung frei Haus an lt br gt lt br gt lt php echo kunde lt br gt echo adr lt br gt echo plz ort lt br lt br gt if pay rech echo Die Lieferung erfolgt incl Rechnung amp uuml ber summe else echo Den Betrag in H ouml he von lt b gt summe EUR lt b gt buchen wir von Ihrem Konto Nr nr ab gt lt body gt lt html gt Abbildung 10 3 zeigt die Ausgabe des Skripts nach der Ausf hrung einer Bestel lung ashRo op Bestellbest tigung Microso lolx Datei Bearbeiten Ansicht Favoriten Extras 2 Ea Zuw ck gt O A A suchen Glravorten Meden G 3 Adresse http 127 0 0 1 flashtest order php strat
7. Ein letzter interessanter Operator ist das tern re dreigliedrige Ausdruck1 Ausdruck2 Ausdruck3 Es handelt sich um eine Wenn Dann Operation Wenn Ausdruck1 wahr ist wird Ausdruck2 gew hlt ansonsten Ausdruck3 Beispiel 3 lt 4 1 0 Dies liefert das Ergebnis 1 weil 3 tats chlich kleiner als 4 ist Zum Abschluss des Themas Operatoren sehen Sie hier deren Rangfolge Je weiter oben ein Operator in der Liste steht desto st rker bindet er und desto fr her wird er ausgewertet e Klammern zur gezielten Erh hung der Rangfolge e 1 Vorzeichen Vorzeichen x 204 Kapitel 6 Interaktivit t durch ActionScript e und arithmetische Operatoren e lt lt gt gt und gt gt gt Bit Verschiebung e lt lt gt und gt e l und e amp bitweise Und e bitweise Exklusiv Oder e bitweise Oder e 88 logisches Und e logisches Oder e Wenn Dann Operator e usw Zuweisungsoperatoren Kontrollstrukturen In einem Computerprogramm ist es wichtig die so genannte Flusskontrolle durch zuf hren Beim Auftreten bestimmter Bedingungen muss das Programm an eine andere Stelle verzweigen oder bestimmte Anweisungen erneut ausf hren In ActionScript stehen f r die Flusskontrolle wie in vielen anderen Sprachen Fall entscheidungen und Schleifen zur Verf gung Fallentscheidungen Mit Hilfe einer Fallentscheidung kann ein Programm eine Bedingung
8. Flash e Praxisbeispiel Ein Bestellformular Ausf hrungsbestimmungen sind Erkl rungen zu den Erkl rungen mit denen man eine Erkl rung erkl rt Abraham Lincoln Webformulare im berblick Sobald Sie das World Wide Web nutzen haben Sie st ndig mit Webformularen zu tun Sie dienen der Kontaktaufnahme der Bestellung von Waren und Dienstleistun gen oder stellen die Web Schnittstelle zu beliebigen Anwendungen zur Verf gung Solche Formulare lassen sich nicht nur in HTML realisieren sondern sind auch in Flash nicht schwer umzusetzen Letztendlich sind Formulare n mlich nichts weiter als Hyperlinks die zus tzlich die eingegebenen Daten an die angeforderte Adresse schicken Unter dieser URL ist dann aber in aller Regel kein statisches Dokument zu finden sondern ein serverseitiges Programm oder Skript das die Daten in Empfang nimmt und auswertet Diese R ckseite der Formulare wird im n chsten Kapitel vorgestellt hier geht es zun chst um die Formulare selbst Sie lernen zun chst einige Hintergr nde des Web Protokolls HTTP kennen das die Formulardaten transportiert Anschlie end erhalten Sie einen kurzen Einblick in den Aufbau klassischer HTML Formulare Den Hauptteil dieses Kapitels bildet die Beschreibung von dynamischen Textfel dern und Komponenten die sich brigens nicht nur f r den externen Formularver sand eignen Die HTTP Methoden GET und POST GET und POST sind zwei verschiedene Arten von HTTP An
9. return this maxLadung Wie Sie sehen verf gt ein LKW ber zwei neue Eigenschaften die seine Ladung beziehungsweise Ladekapazit t in Tonnen repr sentieren Die Methoden bela 248 Kapitel 7 ActionScript 2 0 Klassen den und entladen f gen Ladung hinzu beziehungsweise entfernen sie wie gehabt jeweils mit Plausibilit tspr fung Jede der beiden Eigenschaften erh lt zudem ihre eigene Getter Methode Interessant ist der Konstruktor Er nimmt drei Parameter entgegen n mlich Tank kapazit t Verbrauch und maximales Ladungsgewicht Die ersten beiden Werte ent sprechen den Eigenschaften der Elternklasse Auto deshalb werden sie an deren Konstruktor weitergereicht super m v Der Rest die Initialisierung der neuen Eigenschaften muss dagegen an Ort und Stelle erledigt werden weil die Klasse Auto diese Eigenschaften nicht besitzt this maxLadung 1 this ladung 0 Der Rest der Klassendefinition ist kaum der Rede wert Die beiden Methoden bela den und entladen f gen die angegebene Menge an Ladung hinzu beziehungs weise entfernen sie zwei Getter f r die neuen Eigenschaften schlie en den Code ab Eine LKW Instanz wird nach dem blichen Schema erstellt Beispiel var lkw LKW new LKW 100 18 7 Auch der Methodenaufruf erfolgt wie gewohnt Nat rlich k nnen Sie ohne jeden Unterschied sowohl die Methoden der Klasse als auch der Elternklasse aufrufen wie das folgende Beispiel zeigt lkw bel
10. Falls die Datei navi html dagegen einen Flash Film mit Schaltfl chen zur Navigation enthielte dann w rde der Schaltfl che Kontakt das folgende Skript zugewiesen on release getURL kontakt html inhalt 272 Kapitel 8 Mit ActionScript auf externe Daten zugreifen ausgestattet die die pers nlichen E Mail Adressen bestimmter Ansprechpartner angibt Wenn ein Benutzer im Browser auf einen Mail Link klickt ffnet sich nor malerweise das bevorzugte E Mail Programm des Benutzers die Empf ngeradresse ist bereits eingetragen Dies funktioniert mit einer URL nach dem Schema mailto E Mail Adresse Das folgende Beispiel kann einer Schaltfl che zugewiesen werden und ffnet dann auf Knopfdruck ein Mail Fenster mit einer neuen Nachricht an info flashrock music com on release getURL mailto info flashrock music com Optional besteht die M glichkeit auch den Betreff der E Mail bereits festzulegen Zu diesem Zweck m ssen Sie subject Betreffzeile an die URL anh ngen Die fol gende Anweisung ffnet ein Mail Fenster mit einer Mail an info flashrock music com und dem Betreff Bestellung getURL mailto info flashrock music com subject Bestellung Eine weitere n tzliche Art von URLs besitzt das Schema javascript Es erm glicht den Aufruf einer beliebigen JavaScript Anweisung sowohl einer vorgefertigten als auch einer Funktion die im aktuellen HTML Dokument definiert ist Wenn Sie getURL
11. Math ceil Math random 6 while wurf 6 trace Es wurden versuche W rfe ben tigt Die letzte M glichkeit eine Schleife zu konstruieren ist die for Schleife Sie besitzt folgendes Format for Initialisierung Bedingung Wert nderung Anweisung en Die Initialisierung und die Wert nderung k nnen beliebige Anweisungen sein die Bedingung ein beliebiger Ausdruck Die Initialisierung wird vor dem ersten Durch lauf ausgef hrt die Bedingung wird vor Beginn jedes Durchlaufs berpr ft und die Wert nderung findet nach jedem Durchlauf statt for Schleifen werden meist benutzt um Schleifen mit einer feststehenden Anzahl von Durchl ufen zu formulie ren Das folgende Beispiel gibt nacheinander die Werte 2 4 6 8 und 10 im Ausga befenster aus for var i 2 i lt 10 i 2 trace i 208 Kapitel 6 Interaktivit t durch ActionScript Die Klasse Math mathematische Funktionen Die ECMAScript Basisklasse Math enth lt zahlreiche Funktionen und Konstanten der Mathematik die f r die ActionScript Programmierung oft sehr n tzlich sind Im obigen Beispiel wurden der Zufallsgenerator Math random sowie die Aufrun dungsfunktion Math ceil verwendet Math random liefert eine Flie komma Zufallszahl genauer gesagt eine nicht vorhersagbare Zahl echten Zufall kennt ein Computer nicht zwischen 0 und 1 Um mit ihrer Hilfe einen W rfelwurf zu simu lieren wird sie zun chst m
12. planet lt h1 gt gt Hier sehen Sie ein kleines Beispiel f r ein komplettes PHP Programm Es gibt Datum und Uhrzeit aus lt html gt lt head gt lt title gt Datum und Uhrzeit mit PHP lt title gt lt head gt lt body gt lt h1 gt Hallo lt h1 gt lt php jetzt time datum date d m Y jetzt zeit date H i jetzt echo Heute ist der datum Es ist jetzt genau zeit Uhr gt lt body gt lt html gt Die praktische Funktion date format zeitpunkt formatiert Datum und Uhrzeit die Funktion time dient ihr als Eingabe weil sie die aktuelle Systemzeit UNIX typisch in Sekunden seit EPOCH ausliest Eine Liste der zul ssigen Formatanga ben finden Sie im Verzeichnis docs auf der beiliegenden CD ROM Abbildung 10 1 zeigt das Ergebnis der Anwendung im Browser AP Datei Bearbeiten Ansicht Gehe Lesezeichen Extras Hilfe aD DATE Meinzoo ire e CL Hallo Heute ist der 03 12 2005 Es ist jetzt genau 20 29 Uhr Abbildung 10 1 Ausgabe des PHP Beispielskripts a Idealisiertes UNIX Erfindungsdatum 01 01 1970 00 00 Uhr PHP Anwendungen und Flash Filme 329 Zu guter Letzt sollten Sie noch wissen wie Formulardaten mit Hilfe von PHP ausge lesen werden da sie als Fingabedaten f r Webanwendungen unentbehrlich sind Sie stehen in den beiden globalen Arrays _POST und _GET zur Verf gung je nach dem mit welcher HTTP Methode die Formula
13. Auf der Website zum Buch finden Sie ein Beispiel das die Zusammenarbeit einer Flash Anwendung mit dem ffentlich verf gbaren Google Web Ser vice demonstriert u Auf der Basis des XML Datenformats wurden die Web Services ent XML Dokumente XML ist zun chst keine Sprache mit speziellen Schl sselw rtern die eine konkrete Bedeutung haben sondern ein Metaformat zur Definition solcher Sprachen XHTML ist beispielsweise die XML basierte Neufassung von HTML Jenseits sol ActionScriptundXML 335 cher Standards k nnen Sie Dokumente mit beliebigen Tags schreiben solange Sie sich dabei an bestimmte Regeln halten handelt es sich um wohlgeformte XML Dokumente Diese Regeln sind Als Einleitung wird eine Steueranweisung mit dem folgenden Schema ben tigt lt xml version 1 0 encoding utf 8 gt Statt utf 8 sollte der tats chliche Zeichensatz des Dokuments angegeben wer den zum Beispiel iso 8859 1 Abgesehen von der Einleitungszeile muss ein Dokument vollst ndig von einem einzelnen Tag umschlossen werden dem so genannten Wurzelelement Bei XHTML Dokumenten ist dies beispielsweise lt html gt lt html gt Jedes Element besteht aus einem Start Tag und einem End Tag Das Start Tag hat die Form lt Tagname Attribut Wert gt das End Tag lautet immer ein fach lt Tagname gt ohne Wiederholung der Attribute Wenn ein Element keine Inhalte umschlie t ist die Kurzschreibweise lt Tagname Attribut Wert
14. Datenbankverbindung herstellen conn new mysqli 127 0 0 1 dbuser geheim guestbook Wurde zumindest eine Nachricht geschrieben if message Eintrag vornehmen success conn gt query INSERT INTO guest gb_user gb mail gb instrument gb_subject gb message VALUES user mail instrument subject message Neue Eintragsanzahl ermitteln eintrag 1 query conn gt query SELECT COUNT gb id FROM GUEST if query gt num rows gt 0 list eintrag query gt fetch_row Datentyp nur Text festlegen header Content type text plain user urlencode user mail urlencode mail instrument urlencode instrument subject urlencode subject message urlencode message echo user userdmail mail instrument instrument subject subject message me ssagedeintrag eintrag gt In Abbildung 10 4 sehen Sie das G stebuch in Aktion und zwar beim Eintragen eines neuen Datensatzes Praxisbeispiel Bestellannahme und G stebuch 351 Datei Bearbeiten Ansicht Favoriten Extras le Fzickr4 a suchen Favoriten Medien 4 ir Adresse Ei http 47127 0 0 1 flashtest guesttest html Wechseln zu Links Google x Be webssuche g PaseRank Ehag blockiert RuJoptionen 9 G stebuch Mail Instrument Titel Nachricht Fertig Abbildung
15. Guter Programm code sollte immer mit aussagekr ftigen Kommentaren versehen werden damit Sie sich auch bei sp teren nderungen noch zurechtfinden oder den Code zur Weiter bearbeitung an andere Programmierer weitergeben k nnen ActionScript unter st tzt zwei verschiedene Kommentarsorten e Einzeiliger Kommentar Hinter zwei Schr gstrichen wird der restliche Text einer Zeile ignoriert Beispiele Dies ist ein Kommentar stop Kommentar nach Anweisung Beachten Sie dass die Autoformat Funktion Kommentare grunds tzlich in eigene Zeilen verschiebt e Mehrzeiliger Kommentar Sie k nnen Inhalte zwischen und setzen um sie ber beliebig viele Zeilen als Kommentar zu betrachten Dies ist f r l ngere Beschreibungen von Funktionen n tzlich aber auch um vor bergehend einen Codeabschnitt zu deaktivieren und eine Alternative zu testen Hier ein Beispiel Wenn die Variable runden mindestens 8 ist soll der Sprung zum Bild ende erfolgen 184 Kapitel 6 Interaktivit t durch ActionScript if runden gt 8 gotoAndPlay ende Schaltfl chen Eines der wichtigsten interaktiven Elemente f r Flash Filme ist das Schaltfl chen Symbol Sie k nnen definieren was passieren soll wenn eine Schaltfl che ange klickt oder anderweitig aktiviert wird Auf diese Weise wird aus einem linearen Film eine interaktive Pr sentation oder Multimedia Anwendung Wenn Sie eine neue Schaltfl che erstellen m cht
16. Num angeben damit diese beim Aufruf nicht versehentlich den Wert 0 haben Das Interessante an den unterschiedlichen Stufen ist dass sie sich gegenseitig per ActionScript ansprechen k nnen Sie k nnen einen Film auf einer anderen Stufe genauso steuern wie einen Movieclip innerhalb eines Films Der Film einer bestimmten Stufe tr gt die Bezeichnung _levelN wobei N f r die Nummer der Weitere Filmeladen 267 gew nschten Stufe steht Falls Sie also etwa den Film auf Stufe 2 anhalten m chten lautet die entsprechende Anweisung folgenderma en _level2 stop Nat rlich kann ein nachtr glich auf eine h here Stufe geladener Film umgekehrt auch die Stufe 0O beeinflussen Ihre Bezeichnung ist _levelo Das folgende Beispiel macht den Film auf Stufe 0 unsichtbar indem seine Eigenschaft visible auf false gesetzt wird _levelo visible false Die Bezeichnung _root bezieht sich immer nur auf den Film in dem sie verwendet wird selbst dann wenn dieser Film auf eine h here Stufe geladen wird Es ist nicht etwa ein Synonym f r _levelo Externe Filme in Movieclips laden Sie k nnen SWF Dateien nicht nur auf eine Stufe ber dem aktuellen Film laden sondern auch in eine beliebige Movieclip Instanz hinein Der bisherige Inhalt der Instanz wird dadurch unwiederbringlich entfernt Es gibt zwei verschiedene Schreibweisen f r die passende Anweisung Sie k nnen loadMovie als globale Funktion oder als Methode einer Movieclip In
17. clip1 stop Falls Sie absolute Pfade bevorzugen lautet die Formulierung nat rlich so _root clip1 stop M chten Sie dagegen aus dem unterclip heraus den Hauptfilm zu dessen Bild menue schicken dann k nnen Sie sich eine der beiden folgenden Anweisungen aussuchen _root gotoAndStop menue absolut _parent _parent gotoAndStop menue relativ N Wenn Sie die Zeitleiste des Hauptfilms aus einem anderen Clip her l aus ansprechen k nnen Sie in den Methoden gotoAndStop bezie hungsweise gotoAndPlay keine Szenen angeben Sie m ssen sich mit der absoluten Bildnummer von der ersten Szene an gerechnet oder einer eindeutigen Bildmarkierung behelfen Dieser kleine Unter schied zeigt dass die globalen gotoAnd Funktionen nicht identisch mit den gleichnamigen Movieclip Methoden sind Sie k nnen mit Hilfe der gezeigten Punkt Syntax auch Variablen und Funktionen einer anderen Zeitleiste ansprechen Das folgende Beispiel zeigt wie Sie aus einem beliebigen Movieclip heraus die weiter oben vorgestellte Funktion istZahl benut zen k nnen wenn sie in der Zeitleiste des Hauptfilms definiert ist if _root istZahl a trace a ist eine Zahl Das n chste Beispiel berpr ft den Wert der Variablen durchgang in der direkt untergeordneten Instanz clip1 if clipi durchgang lt 3 gotoAndPlay anfang else gotoAndStop ende Movieclips steuern 215 Hier das letzte derartige Beis
18. field 342 Kapitel 10 Interaktion mit Webserver Anwendungen elseif meth POST if isset POST field 84 _POST field var POST field Variable zur ckgeben return var Daten einlesen Artikel St ckzahlen stratStk cgiParam strat 0 yamaStk cgiParam yama 0 ampStk cgiParam amp 0 RA kabStk cgiParam kab 0 buchStk cgiParam buch 0 Daten einlesen Pers nliche Daten Bestellweg kunde cgiParam kunde adr cgiParam adr plz cgiParam plz ort cgiParam ort pay cgiParam pay rech nr cgiParam nr gt lt html gt lt head gt lt title gt FlashRock Music Shop Bestellbest amp auml tigung lt title gt lt head gt lt body gt lt h1 gt Vielen Dank f amp uuml r Ihre Bestellung lt h1 gt lt table border 2 gt lt tr gt lt th gt St uuml ck lt th gt lt th gt Artikel lt th gt lt th gt Einzelpreis lt th gt lt th gt Gesamtpreis lt th gt lt tr gt lt php summe 0 if stratStk Stratocaster gekauft stratPr stratStk 599 summe stratPr echo lt tr gt n echo lt td stratStk lt td gt n echo lt td gt Fender Stratocaster E Gitarre lt td gt n echo lt td a echo lt td a echo lt tr gt n ign right gt 599 EUR lt td gt n ign right gt stratPr EUR lt td gt n
19. gekennzeichnet wurde Die Arbeitsweise von Flash Formularen Flash Formulare k nnen genauso wie die soeben vorgestellten HTML Formulare funktionieren Die Funktion getURL die in anderem Zusammenhang bereits in Kapitel 8 vorgestellt wurde dient nicht nur der normalen Web Verlinkung son dern ist auch zum Formularversand in der Lage Zu diesem Zweck gibt es den op tionalen dritten Parameter Methode getURL URL Fenster Methode URL entspricht in diesem Fall dem Attribut action eines HTML Formulars Der Parameter enth lt die URL an die die Formulardaten gesendet werden sollen Fens ter m ssen Sie in diesem Fall leider auch dann angeben wenn das Ziel des Links kein anderes Fenster oder Frame sein soll weil Flash die Parameter nach der Rei henfolge unterscheidet Geben Sie einfach self an um das aktuelle Fenster beziehungsweise Frame anzusprechen Der eigentlich wichtige Parameter f r den Formularversand ist nat rlich Methode die beiden m glichen Werte sind GET oder POST Verwenden Sie f r besonders umfangreiche Datenmengen gem der obi gen Beschreibung POST ansonsten k nnen Sie auch GET benutzen Das Praktische ist dass Sie gar nicht einmal unbedingt besondere Formularfelder zu definieren brauchen wenn eine solche getURL Anweisung ausgef hrt wird versendet der Flash Player einfach s mtliche Variablen die im aktuellen Kontext bekannt sind als Variable Wert Paare Deshalb k nnen Sie f r die
20. gr te Problem noch schlimmer ist die Tatsache dass sich die Werte der globalen Variablen an beliebiger Stelle ndern lassen Schauen Sie sich das folgende auf die Funktionen aus dem Einzelauto Beispiel bezogene Szenario an Anfangszustand km Stand 0 Tankf llung 50 1 41 max Tankf llung 50 Verbrauch 10 1 100 km auskunft 250 km fahren fahren 250 Tacho zur ckdrehen kmStand 0 Info auskunft Die Ausgabe zeigt dass etwas nicht stimmen kann Das Auto hat 50 1 im Tank und den Kilometerstand 0 Das Auto hat 25 1 im Tank und den Kilometerstand 0 Nat rlich machen Programmierer solche Fehler in der Regel nicht mit Absicht Aber solange Datenstrukturen und Funktionen keine Einheit bilden kann es leicht dazu kommen Es ist schwierig und zeitaufw ndig derartige Probleme im Nach hinein aufzusp ren Der praktische Nutzen der Objektorientierung Um die oben beschriebenen Probleme in den Griff zu bekommen k nnen die St r ken des objektorientierten Ansatzes zur Geltung kommen Durch die genannte Kapselung von Datenstrukturen und Funktionen zur Einheit des Objekts ist gew hrleistet dass die Daten nur noch ber zul ssige Schnittstellen ge ndert wer den Das objektorientierte Auto kann also selbst fahren und tanken In der Praxis funktioniert objektorientierte Programmierung in ActionScript und in den meisten anderen modernen Sprachen so 1 Mit Hilfe der Konstruktion class Klassenname
21. gt f r die Kombination aus ffnendem und schlie endem Tag zul ssig ein Beispiel w re dasXHTML Tag lt br gt f r einen einfachen Zeilenumbruch In Elemente k nnen beliebig viele weitere Elemente oder einfacher Text PCDATA verschachtelt werden Zeichen die in der XML Syntax eine spezielle Bedeutung haben m ssen durch so genannte Entity Referenzen ersetzt werden amp lt steht f r lt amp gt f r gt amp amp f r amp amp quot f r und amp apos f r Um diese Regeln transparent zu machen sehen Sie hier einen Ausschnitt aus einer XML Repr sentation der Struktur dieses Buches die gek rzten Stellen werden durch lt Kommentare gt gekennzeichnet lt xml version 1 0 encoding utf 8 gt buch isbn 3 89721 277 3 gt lt titel gt Praxiswissen Flash 8 lt titel gt lt autor gt Sascha Kersken lt autor gt lt verlag gt O amp apos Reilly lt verlag gt lt kapitel gt lt titel gt Flash im berblick lt titel gt lt abschnitt gt Was ist Flash lt abschnitt gt lt abschnitt gt Flash installieren lt abschnitt gt lt abschnitt gt Die Arbeitsumgebung von Flash lt abschnitt gt lt abschnitt gt Praxisbeispiel Der erste Flash Film lt abschnitt gt lt kapitel gt lt kapitel gt lt titel gt Zeichnen mit Flash lt titel gt lt Liste der Abschnitte in Kap 2 gt lt kapitel gt lt Hier weitere Kapitel gt lt buch gt 336 Kapitel 10 Interaktion mit Webserver
22. gt gb_mail VARCHAR 30 gb_instrument VARCHAR 50 gt gb_subject VARCHAR 50 gb_message TEXT Query OK O rows affected 0 04 sec Vorhandene Eintr ge anzeigen Wenn Sie sich in der Datei guest_start fla umschauen werden Sie auf der Ebene labels die beiden Markierungen read und write bemerken die dem Lesen vorhande ner beziehungsweise dem Hinzuf gen neuer Eintr ge dienen W hlen Sie das Schl sselbild auf der Ebene gui im Bereich read aus hier m ssen die Textfelder zun chst mit Variablen verkn pft werden Markieren Sie sie dazu nacheinander und tragen Sie unter Var in der Eigenschaftenleiste folgende Variablennamen ein user mail instrument subject sowie message Es handelt sich um dynamische Text felder das Laden der Variablen aus der entsprechenden PHP Anwendung sorgt automatisch daf r dass die einzelnen Eintr ge in den Feldern erscheinen Weisen Sie dem Schl sselbild in Bild 2 auf der Ebene actions das folgende Skript zu getData liest den aktuellen Eintrag function getData Aktueller Eintrag Nr 1 var eintrag 1 getData stop Die Funktion getData ruft loadVariablesNum auf und beauftragt so das PHP Skript guestdata php die Daten des aktuellen Eintrags zu liefern Durch die Angabe der Methode POST wird sichergestellt dass der Flash Film auch seine eigenen Variablen an die PHP Anwendung sendet diese erh lt dadurch den Wert der Vari ablen eintrag und wei welcher Date
23. kd Movieclips einf rben Im Gegensatz zum Transparenzgrad der sich ber die Eigenschaft _alpha einstellen l sst ist es ein wenig komplexer die Farbe eines Movieclips dynamisch zu ndern Sie m ssen dazu ein Color Objekt erstellen Das Argument des Color Konstruktor aufrufs ist der Bezug auf den Movieclip dem Sie die Farbe zuweisen m chten Das folgende Objekt wird f r den Movieclip _root farbclip verwendet var farbe new Color _root farbclip Wenn Sie den gesamten Clip mit einer einzelnen Farbe bedecken m chten k nnen Sie die Methode setRGB des Color Objekts aufrufen Diese ben tigt einen RGB Farbwert den Sie am besten hexadezimal angeben Das folgende Beispiel f rbt die Instanz _root farbclip t rkis ein farbe setRGB 0x00FF99 Weiter oben bei der Beschreibung der Bit Operatoren wurde bereits erw hnt wie Sie diese zur Berechnung eines Farbwerts aus RGB Einzelwerten einsetzen k nnen Das folgende Beispiel weist dem farbclip den Rotwert rot den Gr nwert gruen und den Blauwert blau zu die entsprechenden Variablen ben tigen Zahlenwerte zwi schen 0 und 255 damit alles korrekt funktioniert farbe setRGB rot lt lt 16 gruen lt lt 8 blau Movieclips steuen 217 Statt einer deckenden Farbe k nnen Sie einer Movieclip Instanz auch den in Kapitel 3 beschriebenen Farbeffekt Erweitert dynamisch zuweisen Zu diesem Zweck enth lt Color eine Methode namens setTransform Ihr Argument ist ein allgemeines
24. nis jeweils das gro geschriebene Ereignis aus Tabelle 6 2 ist Wenn die Schaltfl chen Instanz weiter auf das Ereignis release reagieren soll sieht die passende Prozedur Zuweisung folgenderma en aus weiter onRelease function gotoAndPlay 100 Dem Ereignis wird also eine anonyme Funktion zugewiesen Alternativ k nnen Sie auch eine benannte Funktion verwenden das ist vor allem dann n tzlich wenn Sie ein und dieselbe Funktion mehreren Ereignissen zuweisen m chten Die Definition von Funktionen wird weiter unten besprochen hier nur das nicht weiter erl uterte Beispiel Der Schaltfl che weiter die Funktion sprung zuordnen weiter onRelease sprung Definition der Funktion sprung function sprung gotoAndPlay 100 Zeitleistensteuerung Die wichtigsten und einfachsten ActionScript Anweisungen die in diesem Buch schon mehrfach intuitiv verwendet wurden steuern den Ablauf der Bilder einer Zeitleiste Standardm ig werden die Zeitleisten des Hauptfilms und eventueller Movieclips linear abgespielt F r die Navigation in einer interaktiven Pr sentation ist es wichtig dass dieser Ablauf unterbrochen werden kann Die in diesem Unter abschnitt vorgestellten Funktionen k nnen sowohl im Hauptfilm als auch inner halb eines Movieclips eingesetzt werden Sie steuern jeweils die Zeitleiste in der sie sich gerade befinden Der Zugriff auf andere Zeitleisten etwa von verschachtelten Movieclips wird
25. nnen Daher eignet sich die OOP hervorragend zur Nachbildung von Gegenst nden Arbeits oder Gesch ftsabl ufen aus der Realit t Auch zur Erstellung grafischer Benutzeroberfl chen mit ihren Fenstern Men s und Schaltfl chen ist die Objektorientierung ideal geeignet Schw chen der klassischen Programmierung In der herk mmlichen der so genannten imperativen oder auch prozeduralen Programmierung werden die Datenstrukturen und die Funktionen getrennt vonein ander entworfen Betrachten Sie als Beispiel einige Aspekte eines Autos der Klassi ker zur Erl uterung der OO Vorteile Es tankt maximal bis zur H chstkapazit t 1 Die allererste objektorientierte Programmiersprache war Smalltalk allerdings nicht diese Ehre geb hrt Simula siehe etwa http de wikipedia org wiki Simula 2 Wer es ausprobieren m chte kann die Website http www squeak org besuchen und sich die vollst n dige Smalltalk Umgebung Squeak f r viele verschiedene Plattformen herunterladen 230 Kapitel 7 ActionScript 2 0 Klassen seines Tanks und es f hrt wobei es idealisiert stets eine feste Anzahl von Litern Kraftstoff pro 100 km verbraucht F r das imperative Auto werden diese Daten in Variablen gespeichert und Funktionen greifen darauf zu um diese Daten zu ndern Den folgenden Code der das demonstriert k nnen Sie dem ersten Bild eines leeren Films zuweisen Eigenschaften des Autos var maxTankFuellung 50 Kapazit t de
26. on rollOut c setRGB 0x000000 on release getURL this href Sobald die Maus die Schaltfl che ber hrt wird der Text rot gef rbt beim Verlassen wird er wieder schwarz Klicken und Loslassen ruft die in der Variablen href enthal tene URL auf der Wert dieser Variablen wird f r die einzelnen Instanzen aus dem XML Dokument ausgelesen Der gesamte Rest der Anwendung findet im Skript des ersten Bildes im Hauptfilm statt Hier wird zun chst eine Funktion namens getMenultems definiert deren Beschreibung weiter unten folgt Zuallererst wird n mlich die urspr ngliche menu item Instanz unsichtbar geschaltet _root item visible false ActionScriptundXML 337 Anschlie end muss menu xml geladen und hierarchisch durchwandert werden Dazu wird eine Instanz der Klasse XML erstellt ihre Methode load l dt eine XML URL var menu XML new XML menu load http localhost menu xml Damit die Verarbeitung erst nach dem vollst ndigen Laden beginnt erfolgt der Auf ruf von getMenultems innerhalb eines onLoad Event Handlers und zwar nur im Erfolgsfall menu onLoad function success if success getMenultems menu 0 0 else trace Sorry Kein Men l j Bevor die Vearbeitung von menu xml durch die Funktion getMenuItems beschrieben wird sollten Sie sich diese Datei selbst anschauen Sie besteht aus dem Wurzelele ment lt menu gt sowie einer Reihe beliebig tief ineinander verschachtelt
27. und stop lassen sich zwar schon durchbl tterbare Standbilder erstel len aber der Film bleibt nach wie vor linear Eine interaktive Auswahl von Inhalten ist erst m glich wenn Sie zu verschiedenen Bildern eines Films springen k nnen Zu diesem Zweck gibt es vor allem zwei wichtige Funktionen gotoAndPlay springt zum angegebenen Frame der aktuellen Zeitleiste und spielt den Film von dort weiter ab gotoAndStop springt ebenfalls zum gew nschten Bild h lt den Film aber dort an Im einfachsten Fall ist das Argument die Angabe des Bildes zu dem Sie springen m chten eine einfache Nummer wie sie in der Zeitleiste steht Die folgende Anweisung springt zum Bild Nummer 100 der aktuellen Zeitleiste und spielt diese dann ab gotoAndPlay 100 Das folgende Beispiel springt dagegen zu Frame 50 und bleibt dort stehen gotoAndStop 50 Praktischer als die Verwendung von Bildnummern sind brigens Bildmarkierungen Erstens kann man sich eine aussagekr ftige Bezeichnung wie menue leichter mer ken als beispielsweise 356 und au erdem ndern sich Markierungen auch dann nicht wenn Sie sp ter Bilder einf gen oder entfernen ActionScript Grundelemente 189 Wenn Sie eine Bildmarkierung anbringen m chten m ssen Sie ein Schl sselbild anklicken und k nnen dann links oben in der Eigenschaftenleiste einen Namen ein geben Das entsprechende Bild wird in der Zeitleiste durch ein kleines F hnchen mit der Bezeichnung gekennzei
28. 0 gearbeitet diese Erweiterung der Sprache wird wahrscheinlich in die n chste Flash Version eingebaut ActionScript ist eine vollst ndige Programmiersprache in der sich s mtliche com puterl sbaren Probleme Algorithmen implementieren lassen Dennoch sind die Elemente der Sprache stark an die Besonderheiten von Flash angepasst so dass Sie den Einstieg leicht finden d rften wenn Sie sich ein wenig mit den sonstigen Funk tionen des Programms auskennen zum Beispiel nach dem Durcharbeiten der bis herigen Kapitel dieses Buches Sie k nnen ActionScript Anweisungen an drei verschiedenen Stellen in einem Flash Film einsetzen in Schl sselbildern bei Schaltfl chen Instanzen und bei Movieclip Instanzen Wenn Sie einem Schl sselbild egal ob im Hauptfilm oder 1 Die Spezifikation ist sehr theoretisch und trocken aber wenn Sie m chten k nnen Sie sie online unter http www ecma international org publications files ECMA ST Ecma 262 pdf lesen 2 Nach dem britischen Mathematiker Kryptologen und Informatik Pionier Alan Turing 1912 1954 werden solche Sprachen als Turing vollst ndig bezeichnet 172 Kapitel 6 Interaktivit t durch ActionScript innerhalb eines Movieclip Symbols ActionScript Code zuweisen wird dieser aus gef hrt sobald das Schl sselbild abgespielt wird Das ist praktisch wenn eine Aktion automatisch zu einem bestimmten Zeitpunkt w hrend des Filmablaufs stattfinden soll beispielsweise wenn Sie de
29. 18kab 28buch 1 amp kunde Peter Schmitz8adr Alter Weg 28plz 54321 7 Wechseln zu Links gt Google v web suche go Pagefank Es blockiert EJoptionen 4 Vielen Dank f r Ihre Bestellung St ck Artikel Einzelpreis Gesamtpreis 1 Fender Stratocaster E Gitarre 599 EUR 599 EUR 2 Gitarrenkabel 3 m 14 EUR 28 EUR 1 Buch Rock Gitarre 13 EUR 14 EUR Gesamtsumme 641 EUR incl 16 Mehrwertsteuer 83 41 EUR Lieferung frei Haus an Peter Schmitz Alter Weg 2 54321 K ln Die Lieferung erfolgt incl Rechnung ber 641 Wa ZE Lokales Intranet Fertig Abbildung 10 3 Bestellbest tigung durch ein PHP Skript Praxisbeispiel Bestellannahme und G stebuch 345 Ein G stebuch Viele private aber auch einige kommerzielle Websites sind seit Jahren mit virtuel len G steb chern ausgestattet Passend zum Rest seiner Website erh lt der FlashRock Music Shop nat rlich ein G stebuch dessen Oberfl che vollst ndig in Flash erstellt wurde Die Funktionalit t hinter den Kulissen stellen zwei kleine PHP Skripte zur Verf gung Das eine liefert auf Anforderung einen bestimmten numme rierten Eintrag aus dem G stebuch w hrend das andere einen neuen Eintrag im G stebuch speichert Die Daten werden in einer kleinen MySQL Datenbanktabelle gespeichert Die fertige Benutzeroberfl che des G stebuches finden Sie auf der beiliegenden
30. 6 2 Ereignisse f r Schaltfl chen Aktionen Ereignis Erl uterung on press Maustaste dr cken on release Maustaste dr cken und wieder loslassen on releaseOutside Maustaste dr cken au erhalb der Schaltfl che loslassen on rollOver Mauszeiger ber hrt die Schaltfl che on rollOut Mauszeiger verl sst die Schaltfl che on dragOver Mauszeiger ber hrt die Schaltfl che bei gedr ckter Maustaste on dragOut Mauszeiger verl sst die Schaltfl che bei gedr ckter Maustaste on keyPress lt Left gt Pfeiltaste links gedr ckt on keyPress lt Right gt Pfeiltaste rechts gedr ckt on keyPress lt Home gt Pos1 gedr ckt 186 Kapitel 6 Interaktivit t durch ActionScript Tabelle 6 2 Ereignisse f r Schaltfl chen Aktionen Fortsetzung Ereignis Erl uterung on keyPress lt End gt Ende gedr ckt on keyPress lt Insert gt Einfg gedr ckt on keyPress lt Delete gt Entf gedr ckt on keyPress lt Backspace gt R cktaste gedr ckt on keyPress lt Enter gt Enter gedr ckt on keyPress lt Up gt Pfeiltaste oben gedr ckt on keyPress lt Down gt Pfeiltaste unten gedr ckt on keyPress lt PageUp gt Bild auf gedr ckt on keyPress lt PageDown gt Bild ab gedr ckt on keyPress lt Tab gt Tab gedr ckt on keyPress lt Escape gt Escape Taste gedr ckt on keyPress lt Space gt Leertaste gedr ckt on keyPress Taste angegebene alphanumerische
31. Anweisung wird die Website von Macromedia in das gesamte Browser fenster geladen getURL http www macromedia com top Die folgende Anweisung ffnet schlie lich ein neues Fenster und zeigt darin die Datei start html aus dem bergeordneten Verzeichnis an getURL start html blank Spezielle URLs brigens k nnen Sie mit getURL nicht nur URLs angeben die neue Dokumente laden Es gibt einige spezielle URLs f r Sonderaufgaben Zwei von ihnen E Mail und JavaScript URLs werden hier kurz vorgestellt Es ist beraus praktisch wenn man auf einer Webseite einen Link anklicken kann um jemandem eine E Mail zu senden Zahlreiche Sites enthalten auf jeder einzelnen Seite einen allgemeinen E Mail Link und sind zudem oftmals mit einer Kontaktseite Web Links mit getURL 271 Frames Frames sind eine M glichkeit mehrere Webseiten in einer bestimmten Anordnung in ein und demselben Browserfenster anzuzeigen Sie wurden von Netscape entwi ckelt und zuerst in den Netscape Navigator 2 0 eingebaut Anfangs erfreuten sie sich unter Webdesignern gro er Beliebtheit Schlie lich bieten sie unter anderem den Vorteil dass nicht bei jedem Klick auf einen Link die gesamte Seite neu geladen werden muss Gerade bei Internetverbindungen mit geringer Bandbreite ist dies ein gro er Vorteil so dass um 1998 fast jede Site aus einem Frame mit einem festste henden Navigationsbereich und einem weiteren mit wechselnden
32. Dezimalbr che mit begrenzter Genauigkeit periodische oder nicht abbrechende Dezimalzahlen widersprechen seinen technischen Gegebenheiten Beachten Sie dass das Dezimaltrennzeichen nicht das Komma sondern gem amerikanischer Schreibweise der Punkt ist Beispiele f r Flie komma Literale sind 3 8762 oder 0 1429 Zur Textausgabe oder auch zur berpr fung von Benutzereingaben verwendet ActionScript Text in Form von Zeichenketten englisch Strings Auch Frames k n nen beispielsweise in Form von Strings angegeben werden wenn Sie ihnen in der Zeitleiste eine benannte Bildmarkierung zuweisen Ein String Literal steht grunds tzlich in Anf hrungszeichen im Gegensatz zu vie len anderen Programmiersprachen ist es bei ActionScript egal ob Sie einfache oder doppelte Anf hrungszeichen benutzen Die direkte Abfolge zweier Anf h rungszeichen ist der leere String er besteht aus 0 Zeichen Hier einige weitere Beispiele f r Strings Ein Text 300 8 Neben gew hnlichen Zeichen kann ein String noch so genannte Escape Sequenzen enthalten Zeichenfolgen mit besonderer Bedeutung die mit einem Backslash beginnen und erm glichen die Verwendung der Anf hrungszeichen selbst ist der Backslash als Zeichen n stellt einen Zeilenumbruch dar t einen Tabulator Au erdem k nnen Sie ein Zeichen durch seinen numerischen ASCII Code angeben 00 bis 377 interpretiert den Wert oktal im Achtersystem und gibt so die Zei
33. F gen Sie nun fol gende Anweisung in ein Bild Skript des Flash Films ein um diese Funktion aufzurufen getURL javascript popupFenster Flash Filme per JavaScript steuern Umgekehrt besteht brigens auch die M glichkeit das Verhalten von A Flash Filmen durch JavaScript Anweisungen zu steuern Der Internet j Expl d r eini i i 55 Explorer verwendet daf r einige Methoden die dem eingebetteten gt ActiveX Objekt zugeordnet sind Netscape kompatible Browser verwen den dagegen eine Technologie namens LiveConnect die nicht ganz so viele Methoden unterst tzt Wenn Sie einen eingebetteten SWF Film im Internet Explorer per JavaScript steu ern m chten ben tigt dieser eine eindeutige ID die ber das gleichnamige Attribut im lt object gt Tag festgelegt wird Erfreulicherweise erledigt die Funktion Ver ffentli chen dies automatisch Beispiel lt object classid clsid d27cdb6e ae6d 11ct 96b68 444553540000 codebase http fpdownload macromedia com pub shockwave cabs flash swflash cab version 8 0 0 0 width 550 height 400 id jssteuerung align middle gt lt object gt Der Flash Film l sst sich hier ber das JavaScript Konstrukt window jssteuerung ansprechen Die anderen Browser brauchen dagegen das Attribut name im lt embed gt Tag das nor malerweise ebenfalls durch Ver ffentlichen eingetragen wird Vorsichtshalber soll ten Sie f r ltere Browser noch das Attribut swliveconnect true
34. Flash Film zum Testen der Klasse definiert zun chst eine etwas modifizierte Funktion auskunft function auskunft a Auto Void trace Tankf llung a getTankFuellung Kilometerstand a getkmStand Ihr bergabeparameter ist diesmal eine Auto Instanz Beachten Sie dass bei einer solchen bergabe kein neues Objekt erstellt wird es handelt sich vielmehr um eine Referenz auf die bergebene Instanz Sollten in der Funktion Methoden der Instanz aufgerufen oder ihre ffentlichen Eigenschaften ge ndert werden hat dies Auswir kungen auf das bergabeobjekt In auskunft werden allerdings nur Getter Methoden verwendet so dass sich keine nderungen der Instanz ergeben W Wenn Sie einfache eingebaute Datentypen wie Number String oder Boolean als bergabeparameter verwenden handelt es sich immer s um eine Wert bergabe Call by Value und nicht um eine Referenz bergabe Call by Reference wie bei Objektdatentypen Betrachten Sie dazu folgenden Code function doppel n Number nits 23 var zahl 2 doppel zahl trace zahl Die Ausgabe des Beispiels lautet 2 da eben nur der Wert von zahl an die Funktion bergeben wird Nach der Definition der Funktion wird eine Instanz von Auto mit einer Tankkapazi t t von 50 l und einem Verbrauch von 10 l pro 100 km erzeugt var auto Auto new Auto 50 10 Objektorientierte Programmierung mit ActionScript 239 Der Rest des Codes ru
35. Formulareingabe und auswahl nicht nur vorgefertigte Komponenten wie in HTML Formularen ver wenden sondern auch beliebige Schaltfl chen und Movieclips erstellen die die Werte von Variablen ndern Auch f r die Texteingabe ist gesorgt Flash stellt Text felder zur Verf gung die mit einer Variablen verkn pft sind was ein Benutzer dort eingibt ist automatisch der Wert dieser Variablen Bevor es im n chsten Abschnitt ins Detail geht sollten Sie das folgende kurze Bei spiel durcharbeiten Die Eingabe in ein Textfeld wird auf Knopfdruck als Suchbe griff an Google weitergereicht Sehen Sie sich zu diesem Zweck einmal an wie die URL einer ausgef hrten Google Suche aussieht Beispielsweise besitzt die Suche nach Flash folgende URL http wuw google de search gq flash ie UTF 8 amp hl de meta Das Haupt Suchskript search erwartet also offensichtlich einen Query String mit dem Feld q Suchbegriff durch Tests mit direkter Eingabe l sst sich herausfinden dass die restlichen Felder nicht notwendig sind In Flash l sst sich diese Anforde rung durch ein Texteingabefeld realisieren dem der Variablenname q zugeordnet 292 Kapitel 9 Formulare erstellen wird Anschlie end wird eine Schaltfl che erstellt die die Beschriftung Google Suche sowie ein Skript mit der passenden getURL Anweisung erh lt Gehen Sie im Einzelnen wie folgt vor 1 W hlen Sie das Textwerkzeug aus der Werkzeugpalette Stellen Sie links oben in der Eig
36. Installationsverzeichnis entschie den haben gilt dies hier sinngem 314 Kapitel 10 Interaktion mit Webserver Anwendungen Apache unter Windows installieren F r Windows Systeme stellt die Apache Group einen komfortablen Installer bereit Sie finden das Paket apache_2 0 55 win32 x86 no_ssl msi auf der CD zum Buch Es handelt sich um eine Windows Installer Datei Wenn Ihr System lter als Windows 2000 beziehungsweise Windows ME ist m ssen Sie zun chst den Windows Instal ler selbst installieren auch dieser ist auf der beiliegenden CD ROM zu finden Doppelklicken Sie zur Installation auf die msi Datei Anschlie end m ssen Sie auf mehreren Dialogseiten die Fragen des Installers beantworten und jeweils die Schaltfl che Next bet tigen 1 Best tigung dass Apache installiert werden soll 2 Zustimmung zur Apache Lizenz I accept the terms in the license agreement es handelt sich um eine typische Open Source Lizenz die Anwendern beinahe v llige Freiheiten l sst Ihr Sinn besteht vielmehr darin die freie Software vor einer Vereinnahmung durch kommerzielle Unternehmen oder gar Software patente zu sch tzen 3 Einf hrende Informationen ber den Apache Webserver mit einer Liste weiter f hrender Informationsquellen 4 Grundeinstellungen f r den Server Betrieb Network Domain ist der Domain Name Ihres Netzes Wenn Apache nur lokal ausgef hrt werden soll geben Sie so etwas wie test local ein Server Name ist
37. Klammern gibt an wie oft ein Zeichen oder sonstiges Element vorkommen soll 0 9 5 bedeutet also beispielsweise f nf Zif fern Der Bindestrich als gesuchtes Zeichen muss durch einen vorangestellten Back slash gekennzeichnet werden genau wie alle anderen Zeichen die in regul ren Ausdr cken eine besondere Bedeutung haben zum Beispiel Das Frage zeichen macht das Vorkommen des vorherigen Zeichens oder Blocks optional der Bindestrich soll also entweder vorkommen oder auch nicht Der letzte Block 0 9X repr sentiert die Pr fsumme eine beliebige Ziffer oder ein X Eine ausf hrliche Einf hrung in regul re Ausdr cke erhalten Sie unter http www galileocomputing de openbook kit itkomp06001 htm Ihre ActionScript 3 0 kompa tible Verwendung in JavaScript wird kurz in http www galileocomputing de open book kit itkomp19002 htm angesprochen Beide Adressen verweisen auf die kostenlos zug ngliche Online Fassung meines Buches Kompendium der Informationstechnik Bonn 2003 Galileo Press Als Alternative zu DOM mit erheblich einfacherer Syntax bietet ActionScript 3 Unterst tzung f r E4X ECMAScript for XML Kurz gesagt betrachtet diese API XML Dokumente als normale Datenstrukturen die den Zugriff auf verschachtelte XML Elemente im Format Element Unterlement erlauben Klassen entwerfen und programmieren 255 Einige Erweiterungen betreffen die Objektorientierung Das Schl sselwort final vor
38. Marshall http www marshallamps com 280 Kapitel 8 Mit ActionScript auf externe Daten zugreifen e Jim Dunlop http www jimdunlop com e Red Hot Chili Peppers http www redhotchilipeppers com e Nuno Bettencourt http www nuno bettencourt com e Remedy Inc http www remedy inc com e Gitarre amp Bass http www gitarrebass de Zu guter Letzt soll der Button Hauptmen auch hier zum Frame main zur ck kehren Speichern Sie die Datei nun unter dem Namen menu fla und schlie en Sie sie zun chst ffnen Sie nun die Datei intro fla Stellen Sie unter Datei gt Einstellungen f r Ver ffentlichungen gegebenenfalls die Standardoptionen SWF und HTML wie der her Ver ffentlichen Sie die Datei und benennen Sie das neu entstandene HTML Dokument intro html in index html um ffnen Sie nun alle anderen FLA Dateien aus dem Arbeitsordner Exportieren Sie jede einzelne von ihnen als SWF Datei siehe Kapitel 5 Im endg ltigen Ordner in dem die Dateien liegen sollen k nnen Sie die Original FLA Dateien nun entfernen ver Verzeichnis liegen in dem PHP aktiviert ist und anschlie end per http geladen werden Einzelheiten dazu finden Sie in Kapitel 10 NS Damit die Site vollst ndig funktioniert muss sie in einem Webser 1 Praxisbeispiel Dynamischer Katalog und verkn pfte Website 281 In diesem Kapitel KAPITEL 9 Webformulare im berblick Textfelder und Komponenten in Fo rm u la re e rstel le n
39. Mit ActionScript auf Medien dynamisch laden gt Vorab den externe Daten zugreifen Praxisbeispiel Dynamischer Kata log und verkn pfte Website Das Problem zu kennen ist wichtiger als die L sung zu finden denn die genaue Darstellung des Problems f hrt automatisch zur richtigen L sung Albert Einstein In Kapitel 6 haben Sie die wichtigsten ActionScript Funktionen kennen gelernt mit denen Sie die Komponenten innerhalb eines einzelnen Flash Films ansprechen und manipulieren k nnen Einen wesentlich h heren Leistungsumfang erlangt Action Script aber erst dadurch dass die Sprache mit verschiedenen externen Dateien kommunizieren kann In diesem Kapitel lernen Sie die wichtigsten dieser Technolo gien kennen e einen anderen Flash Film laden e Web Hyperlinks mit getURL erstellen e externe Dateien Bilder und Sounds importieren e Variablen aus Textdateien laden Weitere Filme laden Mit den ActionScript Anweisungen loadMovieNum beziehungsweise loadMovie k nnen Sie auf einfache Art und Weise eine andere SWF Datei laden Es gibt daf r zwei M glichkeiten Zum einen k nnen Sie den aktuellen Film ersetzen dies ent spricht einer Sprunganweisung zum neuen Film Zum anderen k nnen Sie den neuen Film aber auch zus tzlich laden entweder auf eine Stufe oberhalb des urspr nglichen Films oder aber in eine Movieclip Instanz hinein loadMovieNum l dt eine SWF Datei auf die gew nschte Stufe wobei die A
40. Objekt das acht Variablen enthalten muss e ra Prozentwert des Rotkanals 100 bis 100 e rb absolute Rot Einf rbung 255 bis 255 e ga Prozentwert des Gr nkanals 100 bis 100 e gb absolute Gr n Einf rbung 255 bis 255 e ba Prozentwert des Blaukanals 100 bis 100 e bb absolute Blau Einf rbung 255 bis 255 e aa Prozentwert des Alphakanals 100 bis 100 e ab absoluter Alpha Grundwert 255 bis 255 Wenn Sie etwa die Beispielinstanz farbclip etwas aufhellen Hinzuf gen von Wei durch gleichm iges Erh hen der drei Farbkan le und ihren Transparenzgrad auf 80 vermindern m chten dann k nnen Sie folgende Syntax verwenden allgemeines Objekt f r die Farbtransformation erstellen var trans new Object die Farb und Alphawerte setzen trans ra 100 trans rb 150 trans ga 100 trans gb 150 trans ba 100 trans bb 150 trans aa 80 trans rb 0 Das Color Objekt f r _root farbclip erstellen var farbe new Color _root farbclip Die Transformation einstellen farbe setTransform trans Wenn Sie m chten k nnen Sie auch die bisherigen Farbeinstellungen einer Instanz auslesen beispielsweise f r nderungsberechnungen Die Methoden getRGB beziehungsweise getTransform liefern sie zur ck Der Farbwert von getRGB ist eine Zahl zwischen 0 und etwa 16 7 Millionen das Ergebnis der gezeigten Bit Operation Auf die einzelnen Werte der Transformation k nne
41. Sie die Schriftart Arial 20 Punkt Schwarz ein Aktivieren Sie die Optionen Mehrzeilig und Text als HTML wiedergeben W hlen Sie unter Zeichen die Gro buchstaben Kleinbuchstaben und Ziffern geben Sie bei der Option Diese Zeichen einschlie en zus tzlich die Zeichen Punkt Komma und Doppelpunkt an Geben Sie schlie lich unter Var den Variablennamen zeit ein Erstellen Sie ein leeres Movieclip Symbol mit dem Namen steuerclip und ziehen Sie es auf die B hne Weisen Sie ihm das folgende Skript zu onClipEvent enterframe CustomDate Objekt erstellen var jetzt new CustomDate Sonntag rot darstellen alle anderen Tage normal var wt jetzt getInternationalDayName de 1 Serifen sind die kleinen H kchen an den Buchstaben mancher Schriften Times New Roman ist eine Seri fenschrift w hrend Arial serifenlos ist 296 Kapitel 9 Formulare erstellen if wt Sonntag _root zeit lt font color FF0000 gt wt lt font gt else _root zeit nt _root zeit jetzt getInternationalFormat d m Y n H M S de Das HTML Tag lt font gt kann die Farbe color die Schriftart face und die Gr e size der Schrift angeben In Flash besteht eine Besonderheit darin dass size eine Schriftgr e in Punkt ist w hrend es sich im Browser um eine Stufe von 1 bis 7 handelt Das Konstrukt ist eine so genannte Escape Sequenz durch den voran gestellten Backslash k nnen Sie
42. absolute Pfade und relative Pfade Ein absoluter Pfad geht stets vom Hauptfilm aus dessen ActionScript Name _root lautet Der Vorteil absoluter Pfade besteht darin dass sie aus jeder Zeitleiste heraus gleich lauten w hrend sie den Nachteil haben dass sie bei tief verschachtelten Hie rarchien sehr lang und unhandlich werden Hier die absoluten Pfade aller beteilig ten Filme der Beispielhierarchie e Hauptfilm _root e clipi root clipi e unterclip root clipi unterclip e clip2 root clip2 Bei relativen Pfaden wird dagegen angegeben wie der angesprochene Movieclip mit der aktuellen Zeitleiste verbunden ist Die Instanznamen direkt untergeordneter Movieclips steuern 213 Clips k nnen Sie einfach angeben w hrend der jeweils bergeordnete Film durch die Bezeichnung _parent angesprochen wird Vom Hauptfilm aus lauten die relati ven Pfade der drei Movieclips also wie folgt clipi e clipi unterclip e clip2 Wenn Sie innerhalb des Symbols von clip Skripte verwenden k nnen Sie die anderen Filme daraus folgenderma en relativ ansprechen e Hauptfilm _parent e unterclip e parent clip2 Schlie lich sehen Sie hier noch wie Sie den Hauptfilm clip1 und clip2 vom unter clip aus erreichen k nnen e Hauptfilm _parent _parent e clip1 parent e clip2 _parent _parent clip2 Es steht Ihnen brigens frei relative Pfade mit dem Bezeichner this einzuleiten Er erm glicht es einer Zeitleiste oder einem anderen Objekt
43. befindet sich ebenfalls auf der beiliegenden CD Das Mac OS X Paket ist ein bequemer Installer Bevor Sie ihn ausf hren m ssen Sie unter Systemeinstellungen gt Benutzer berpr fen ob bereits ein User namens mysql existiert und diesen ansonsten neu anlegen Anschlie end k nnen Sie die Image Datei dmg per Doppelklick mounten und den enthaltenen Installer durch einen weiteren Doppelklick starten MySQL wird unter usr local mysql Version installiert zudem erstellt der Installer den Symlink usr local mysql Anschlie end wird automatisch das Skript mysql_install_db zur Erstellung der Verwaltungstabel len ausgef hrt Bei der Linux Bin rvariante ist etwas mehr Handarbeit erforderlich Vor der Instal lation sollten Sie auch hier einen Benutzer und eine Gruppe namens mysql einrich ten damit MySQL aus Sicherheitsgr nden unter diesen IDs ausgef hrt wird Unter Linux und vielen anderen UNIX Systemen funktioniert dies mit den folgenden bei den Befehlen als root groupadd mysql useradd g mysql mysql Anschlie end wird das Bin rpaket entpackt Beispiel tar xzvf mysql max 5 0 18 linux i686 glibc23 tar gz Verschieben Sie das entpackte Verzeichnis nach usr local und erstellen Sie einen symbolischen Link darauf der einfach mysql hei t mv mysql max 5 0 18 linux i686 glibc23 usr local In s usr local mysql max 5 0 18 linux i686 glibc23 usr local mysql Danach k nnen Sie in das Verzeichnis usr local mysql wechseln
44. das Bild artikel1 jpg in die Instanz rahmen und setzt die Bl t ter Variable artikelnr auf den zugeh rigen Startwert 1 stop sorgt wie blich daf r dass der Film an dieser Stelle anh lt Der linken Schaltfl che Instanz von back werden diese Anweisungen zugewiesen on release artikelNr if artikelNr lt 1 artikelNr 13 rahmen loadMovie artikel artikelNr jpg loadVariablesNum artikel artikelNr txt 0 278 Kapitel 8 Mit ActionScript auf externe Daten zugreifen Das Skript der anderen Schaltfl che sieht nahezu identisch aus on release artikelNr if artikelNr gt 13 artikelNr 1 rahmen loadMovie artikel artikelNr jpg loadVariablesNum artikel artikelNr txt 0 Damit dieses Beispiel funktioniert m ssen Sie die SWF Datei des Films in ein Ver zeichnis exportieren in dem sich auch die JPEG Bilddateien und die Textdateien befinden Alternativ k nnen Sie auch den passenden Pfad beziehungsweise die URL des Bilder Verzeichnisses angeben Die Website zusammenstellen Gr ere Flash basierte Websites bestehen oftmals aus vielen einzelnen Flash Fil men die einander ber loadMovieNum oder gar durch Austausch der HTML Doku mente mittels getURL aufrufen Die Website des FlashRock Music Shop ist ein ideales Beispiel daf r Deshalb eignet sich dieses Kapitel hervorragend daf r aus den zahlreichen Einzeldateien der bisherigen Kapitel ei
45. der Name unter dem der Webserver im Netzwerk erreichbar sein soll in der Regel www Ihr Domain Name also zum Beispiel www test local Beachten Sie dass diese Einstellungen lediglich f r die Anpassung der Apache Konfigurationsdatei genutzt werden die Erreich barkeit des Servers ber diesen Namen wird dadurch nicht gew hrleistet Dazu m ssen Sie den Server Namen vielmehr in die Datei Windows Verzeichnis System32 drivers etc hosts eintragen Beispiel 192 168 0 5 www test local 127 0 0 1 www test local Statt 192 168 0 5 m ssen Sie die Netzwerkadresse IP Adresse Ihres Rechners angeben 127 0 0 1 ist dagegen die so genannte Loopback Adresse ber die ein Rechner Netzwerkkommunikation mit sich selbst betreiben kann Wenn der Webserver auch im lokalen Netzwerk ber den angegebenen Namen ansprech bar sein soll m ssen Sie die erste der beiden Zeilen auch in den hosts Dateien der anderen Rechner eintragen alternativ k nnen Sie auch einen entsprechen den Konfigurationseintrag auf einem Nameserver vornehmen Die Angabe unter Administrator s Email Address wird verwendet um auf auto matisch generierten Fehlermeldungsseiten einen E Mail Link unterzubringen damit Besucher den Server Betreiber ber eventuelle Probleme informieren 2 Unter UNIX ist dies ebenfalls der Fall Die entsprechende Datei ist etc hosts Eine PHP Testumgebung einrichten 315 k nnen Normalerweise wird hier eine E Mail Adresse in der Form webmas t
46. der Pfad der Ressource zum Schluss folgt die Angabe der HTTP Protokollversion 1 1 ist aktuell Die restlichen Zeilen sind zus tzliche Header Sie sind zwar hier nicht weiter wichtig aber f r die Interessierten unter Ihnen hier kurz ihre Bedeutung e Accept Zeigt an dass der Browser bereit ist alle Arten von Dateien anzu nehmen e Accept Language de en Der Browser bevorzugt Dokumente in deutscher und englischer Sprache in dieser Reihenfolge Manche Server bieten Dateien in mehreren Sprachversionen an und reagieren auf diese Pr ferenzen in vielen Browsern k nnen Sie deshalb Ihre bevorzugten Sprachen einstellen e User Agent Mozilla 4 0 compatible MSIE 6 0 Windows NT 5 01 Dies ist die Selbstidentifikation des Browsers in diesem Fall ist es der Internet Explorer 6 0 unter Windows XP e Host www oreilly de Bei einer HTTP 1 1 Anfrage ist der Host Header eine Pflichtangabe Da unter einer IP Adresse mehrere virtuelle Hosts betrieben wer den muss der Server wissen welche Website eigentlich angesprochen wurde e Connection Keep Alive Der Browser bittet den Server die Verbindung f r wei tere Anfragen offen zu halten Da die meisten HTML Dokumente zahlreiche eingebettete Bilder SWF Dateien und so weiter enthalten die der Browser zus tzlich anfordern muss beschleunigt dies den Download Prozess 284 Kapitel 9 Formulare erstellen Wenn der Server unter dem angeforderten Pfadnamen eine Datei findet sendet e
47. des Films der dem Erstellen eines neuen G stebucheintrags dient Der Bildschirmaufbau ist fast identisch mit dem Bild read allerdings werden hier Texteingabefelder statt der dynamischen Textfel der verwendet Weisen Sie ihnen hnliche Variablennamen zu wie den Feldern im vorigen Unterabschnitt der Unterschied ist das vorangestellte e_ f r Eingabe e user e mail e instrument e subject und e_message Weisen Sie dem Schl sselbild auf der Ebene actions das folgende Skript zu um die Textfelder bei einem erneuten Eintrag wieder zu leeren e user e mail e_instrument e_subject un e_message 3 um 3 stop Nun ben tigt die Schaltfl che Speichern folgendes Skript on release loadVariablesNum guestsave php 0 POST gotoAndStop read Die zweite Schaltfl che Abbrechen soll dagegen unverrichteter Dinge zum Lesen zur ckkehren on release gotoAndStop read 350 Kapitel 10 Interaktion mit Webserver Anwendungen Zu guter Letzt ben tigen Sie noch das PHP Skript guestsave php das durch einen Klick auf Speichern aktiviert wird und den neuen Eintrag in der Datenbank ablegt lt php Function cgiParam kopieren oder einbetten Formulardaten auslesen user cgiParam e user mail cgiParam e mail instrument cgiParam e instrument subject cgiParam e subject message cgiParam e message
48. eine solche bilderreiche Website Das vorliegende Beispiel ist deshalb ein weiterer Abbildungskatalog wie er bereits in den Praxisteilen der Kapitel 4 und 6 vorgestellt wurde diesmal aller dings mit dynamisch geladenen JPEG Bildern ffnen Sie die Datei dynloader_start fla aus dem CD Verzeichnis beispiele kapitelS Auf der B hne finden Sie lediglich das Logo ein dynamisches Textfeld f r die Beschreibungen sowie zwei Schaltfl cheninstanzen zum Bl ttern Die JPEG Dateien artikell jpg bis artikell3 jpg sollen nicht in die Flash Arbeitsumgebung importiert werden diese Aufgabe soll ActionScript erledigen Auch die Beschreibungsdateien artikell txt bis artikell3 txt werden dynamisch geladen Klicken Sie das Textfeld an und ordnen Sie ihm unter Var in der Eigenschaften leiste den Variablennamen beschreibung zu Erstellen Sie ein neues Movieclip Symbol mit der Bezeichnung bilderrahmen F gen Sie keine Inhalte ein sondern ziehen Sie eine Instanz dieses leeren Symbols auf die B hne Sie soll rechts oben neben dem Logo platziert werden Anders als die in Kapitel 6 verwendeten leeren Movieclips wird dies aber kein Steuerclip sondern die Instanz in die die Bilder hineingeladen werden sollen Weisen Sie ihr den Instanz namen rahmen zu Erstellen Sie nun in Bild 2 der Ebene actions folgendes Skript rahmen 1loadMovie loadVariablesNum var artikelNr 1 stop artikel1 jpg artikeli txt 0 amp C Dies l dt zu Anfang
49. f r arbeitsintensive Anwendungen mit wenig Design Java Server Pages JSP sind dagegen HTML Dokumente in denen Java Codebl cke untergebracht werden k nnen Dieses Modell hnelt PHP oder ASP und ist Server Technologien im Vergleich 311 praktischer f r Seiten mit viel statischem Inhalt und wenigen programmierten Ele menten Die beliebteste Serversoftware f r Servlets und JSP ist Apache Tomcat ASP und ASP NET Microsoft stattet seine Server Betriebssysteme Windows NT Server 4 0 Windows 2000 Server und Windows Server 2003 seit Jahren mit einem eigenen Webserver aus dem Internet Information Server IIS Dieser unterst tzt neben CGI eine eigene Schnittstelle f r Webanwendungen Active Server Pages ASP werden wie PHP oder JSP unmittelbar in den HTML Code hineingeschrieben Die Program miersprache der urspr nglichen ASP war ausschlie lich VBScript eine abgespeckte Variante von Visual Basic Die neuere Version ASP NET die im Rahmen von Microsofts NET Initiative entwickelt wurde versteht dagegen s mtliche Sprachen der NET Common Language Runtime CLR zurzeit sind dies Visual Basic Visual C sowie Visual C Komfortable Schnittstellen f r Datenbankzugriffe XML Anwendungen oder Web Services machen ASP NET zur ersten Wahl f r Webanwendungen in einer Microsoft basierten IT Landschaft Macromedia ColdFusion Der Anwendungsserver ColdFusion wurde von der Firma Allaire entwickelt die vor einigen Jahren von Macromedi
50. formal auf sich selbst Bezug zu nehmen Es gibt ein sehr praktisches Hilfsmittel zum Einf gen der komplexen Movieclip Beziehungen Wenn Sie in der Symbolleiste der Aktionen Palette auf das kleine Fadenkreuz klicken ffnet sich der Dialog Zielpfad einf gen Hier k nnen Sie den anzusprechenden Film leicht aus einer Baumansicht ausw hlen und sich sogar ent scheiden ob die Referenz relativ oder absolut erfolgen soll Sobald Sie OK dr cken wird das Ergebnis an der aktuellen Position im Skript eingetragen Abbildung 6 10 zeigt den Dialog mit den Filmen des aktuellen Beispiels Zielpfad einf gen this clip1 unterclip Abbrechen unterclip 3 clipz B Absolut Abbildung 6 10 Der Dialog Zielpfad einf gen erleichtert das Ansprechen anderer Zeitleisten 214 Kapitel 6 Interaktivit t durch ActionScript Nun wissen Sie zwar bereits wie andere Zeitleisten angesprochen werden aber noch nicht was Sie mit ihnen tun k nnen Das Wichtigste ist dass Sie f r Movie clip Instanzen die bekannten Funktionen zur Filmsteuerung aufrufen k nnen In diesem Zusammenhang werden sie als Methoden der Movieclips bezeichnet weil es sich um Funktionen handelt die diesen Objekten zugeordnet sind Die Syntax lau tet grunds tzlich folgenderma en clip Methode Angenommen Sie m chten clipi aus einem Skript des Hauptfilms heraus anhal ten Dies geschieht mit Hilfe der folgenden Anweisung
51. function PKW m Number v Number s Number Zun chst ein Auto mit der gew nschten max Tankf llung und Verbrauch erstellen super m v Anzahl der Sitze und aktuelle Insassenzahl einstellen this sitze s this insassen 0 Neue Methoden public function einsteigen p Number Nur einsteigen falls Sitze frei if this insassen p lt sitze this insassen p public function aussteigen p Number Nur abziehen falls so viele vorhanden if this insassen p gt 0 this insassen p Klassen entwerfen und programmieren 251 Neue Getter Methoden public function getInsassen Number return this insassen public function getSitze Number Nach den bisherigen Anleitungen in diesem Kapitel k nnen Sie diese neuen Klassen leicht selbst ausprobieren return this sitze Ausnahmenbehandlung Wenn innerhalb von Klassen Fehler auftreten zum Beispiel aufgrund falscher Konstruktorparameter ist es w nschenswert diese an der Stelle zu bearbeiten an der die jeweilige Instanz erzeugt beziehungsweise verwendet wird Zu diesem Zweck verwenden objektorientierte Programmiersprachen so genannte Ausnahmen Diese werden innerhalb von Klassen mit dem Schl sselwort throw ausgel st Instan zen einer Klasse die Ausnahmen ausl st k nnen von einem try Block umschlossen werden anschlie end wird catch verwendet um die entsprechende Ausnahme
52. hinzuf gen lt embed src jssteuerung swf quality high bgcolor ffffff width 550 height 400 name jssteuerung swliveconnect true align middle allowScriptAccess sameDomain type application x shockwave flash pluginspage http www macromedia com go getflashplayer gt lt embed gt Nun l sst sich der Film als document embeds jssteuerung oder document embeds jssteuerung ansprechen Wenn Sie die in Kapitel 5 vorgestellte und beim Ver ffentlichen automatisch erstellte Verschachtelung von lt object gt und lt embed gt einsetzen sollten Sie eine Browserweiche benutzen um den JavaScript Code in beiden Varianten hinzuf gen zu k nnen 274 Kapitel 8 Mit ActionScript auf externe Daten zugreifen MSIE in Browser Beschreibung if navigator userAgent indexOf MSIE gt 0 Ja MS Internet Explorer MSIE Code else Nein Netscape Netscape Code Hier die wichtigsten JavaScript Methoden die Sie in beiden Browser Sorten aufru fen k nnen beachten Sie die Gro und Kleinschreibung e Play Abspielen e StopPlay Anhalten e GotoFrame Nummer entspricht der ActionScript Funktion gotoAndStop e SetVariable Var Wert setzt die Variable Var im Film auf den angegebe nen Wert e GetVariable Var liest den Wert der angegebenen ActionScript Variablen aus Das folgende Beispiel stoppt den Film jssteuerung im Internet Explorer window jssteueru
53. innerhalb der Anf hrungszeichen das Anf hrungs zeichen selbst als Zeichen verwenden Auf hnliche Weise codiert die Escape Sequenz n einen Zeilenumbruch Eine pers nliche Begr ung Hier noch ein weiteres ganz kurzes Beispiel in dem die Verwendung eines Textein gabefeldes demonstriert wird Nach der Eingabe seines Namens und einem Klick auf OK soll der Benutzer pers nlich begr t werden Erstellen Sie zun chst ein Textfeld mit der Eigenschaft Eingabetext Stellen Sie unter Einbetten am besten die volle Palette der Zeichen ein die f r Deutsch notwendig sind siehe oben Verkn pfen Sie dieses Feld mit der Variablen name F gen Sie darunter ein weiteres Textfeld ein diesmal mit der Eigenschaft dyna mischer Text Stellen Sie auch hier alle Zeichen f r Deutsch ein weisen Sie ihm den Variablennamen gruss zu Erstellen Sie schlie lich ber dem Eingabefeld die Beschriftung statischer Text Ihr Name bitte und darunter eine OK Schaltfl che Weisen Sie Letzterer folgendes Skript zu on release Grussformel je nach Tageszeit var jetzt new Date var stunde jetzt getHours if stunde lt 12 gruss Guten Morgen else if stunde lt 18 gruss Guten Tag else gruss Guten Abend Name hinzuf gen u on Eng gruss name Textfelderund Komponenten in Flash 297 HTML in dynamischen Textfeldern Wenn Sie die Option HTML aktiviert haben k nnen Sie einige HTM
54. n Interessant ist hier das Konstrukt list var var2 Sie k nnen es auf der linken Seite einer Wertzuweisung benutzen um den Einzelvariablen in der Liste nacheinander die Werte eines Arrays oder einer anderen Liste zuzuweisen Auf diese Weise k nnen Sie es sich leicht ersparen eine Array Variable zu definieren und deren Felder wieder auszulesen Entwurf der Datenbanktabelle Die Datenbanktabelle f r das G stebuch soll folgende Felder enthalten Name Feldname gb_user E Mail Adresse gb mail Instrument gb instrument Titel gb_subject und Nachricht gb_message Au er der Nachricht selbst sind alle Angaben optional Zus tzlich wird ein Feld namens gb_id eingef hrt das als Pri m rschl ssel dient es wird per AUTO_INCREMENT automatisch durchnummeriert Die meisten Felder besitzen den Datentyp VARCHAR Text mit angegebener Maximal l nge Die einzigen Ausnahmen sind gb_id INT sowie gb_message vom Typ TEXT Textblock mit bis zu 65 536 Zeichen Bevor die G stebuch Anwendung in Betrieb genommen werden kann muss diese Datenbank eingerichtet werden Starten Sie dazu das Kommandozeilenprogramm mysql und geben Sie folgende Anweisungen ein mysql gt CREATE DATABASE guestbook Query OK 1 row affected 0 00 sec mysql gt use guestbook Praxisbeispiel Bestellannahme und G stebuch 347 Database changed mysql gt CREATE TABLE guest gt gb_id INT PRIMARY KEY AUTO _INCREMENT gb user VARCHAR 30
55. nisse wie conf Konfigurationsdateien oder logs Protokolldateien befinden Normalerweise sollte bei der Installation der korrekte Wert eingetragen wor den sein Unter UNIX sieht der Eintrag normalerweise so aus ServerRoot usr local apache2 Auf Windows Systemen h ngt die Einstellung vom gew hlten Installationsver zeichnis ab Beispiel ServerRoot C Programme Apache Group Apache2 Beachten Sie dass die Anf hrungszeichen erforderlich sind wenn der Pfad name ein Leerzeichen enth lt Au erdem m ssen Sie in der Apache Konfigura tionsdatei auch unter Windows den Slash als Pfad Trennzeichen benutzen e DocumentRoot gibt das Stammverzeichnis der Website an die Startseite aus die sem Verzeichnis wird an Besucher ausgeliefert wenn diese den einfachen Ser vernamen als URL anfordern Der Wert kann ein absolutes Verzeichnis sein andernfalls gilt er relativ zur ServerRoot Beispiele DocumentRoot usr local apache2 htdocs DocumentRoot C Programme Apache Group Apache2 htdocs e DirectoryIndex gibt den Namen der Startseite an nach der Apache suchen soll wenn ein Verzeichnis angefordert wird Der Standardwert ist index html Wenn Sie m chten k nnen Sie auch eine Liste mehrerer Dateien verwenden nach denen in der angegebenen Reihenfolge gesucht wird Das folgende Beispiel lie fert die erste gefundene Datei aus der Reihe index html index htm oder index php aus DirectoryIndex index html index htm index php Als N chstes s
56. oder Webmail Dienste k nnen ohne Formulare nicht funktionieren Obwohl es in diesem Buch nicht um HTML geht erhalten Sie hier eine kurze bersicht ber HTML Formulare weil sie f r das Verst ndnis von Flash Formularen hilfreich sind Grunds tzlich stehen HTML Formulare zwischen den Tags lt form gt und lt form gt Das lt form gt Tag besitzt eine Reihe wichtiger Attribute e action URL Gibt an an welche URL die Formulardaten versandt werden sol len In aller Regel handelt es sich um ein serverseitiges Skript das die Formu lardaten entgegennimmt weiterverarbeitet und anschlie end eine Antwortseite generiert die der Browser als N chstes anzeigt Solche Skripte lernen Sie im n chsten Kapitel am Beispiel PHP kennen s In lterer Literatur zu HTML wird oft die Angabe einer mailto URL als action Wert empfohlen also etwas in dieser Form lt form action mailto ich meinprovider de gt Dies soll den Formularinhalt per E Mail versenden wobei das lokale Mail Programm des Benutzers aufgerufen wird Aber ausgerechnet in einer der h ufigsten Kombinationen aus Browser und Mailprogramm Internet Explorer und Outlook Express wird dies als Hyperlink auf eine E Mail Adresse missverstanden Bei Klick auf den Absenden Button ffnet sich ein Mail Fenster ohne Inhalt Also gilt Selbst f r das Weiterleiten der Formulardaten per E Mail wird in der Praxis eine serverseitige Anwendung ben tigt e method post get Mit Hilfe de
57. sich jeweils paarweise die sechs Zahlen von 2 bis 7 also 2 2 3 3 und so weiter Sie entsprechen den Nummern der Frames auf denen im Symbol karte die einzelnen Kartenbilder liegen Der Mischprozess funktioniert nun folgenderma en Per Zufallsgenerator wird ein Wert von O bis 11 ausgew hlt und als Index auf die beiden Arrays angewendet Das Ganze funktioniert genauso wie das weiter oben vorgestellte Lotto Beispiel Als N chstes sollten Sie verstehen was die Funktion klick tut die beim Ankli cken einer Kartenposition aufgerufen wird Sie arbeitet mit einer Variablen namens offene um zu unterscheiden ob gerade die erste oder die zweite Karte eines Paares ge ffnet wird Wenn die Variable den Wert 1 hat eine Karte also bereits aufgedeckt ist wird zuerst einmal gepr ft ob der Klick zum zweiten Mal auf dieselbe Karte erfolgt Ist dies der Fall dann wird die Funktion mittels return verlassen der Klick wird nicht gewertet Sind dagegen schon zwei Karten ge ffnet dann werden diese sofort geschlossen bevor die aktuell angeklickte Instanz als erste Karte eines neuen Paares gewertet wird Normalerweise werden zwei ge ffnete Karten erst nach einer Sekunde auto matisch geschlossen beziehungsweise wenn sie identisch sind abger umt Nach dem ffnen der jeweils zweiten Karte wird eine zus tzliche Pr fung durchge f hrt Sind beide Karten identisch gleiche Frame Nummer dann wird die spe zielle Variable glei
58. trifft im vorliegenden Bei spiel nur f r kmStand zu Denn die Eigenschaften geh ren nicht zur Klasse sondern zur jeweiligen Instanz Ihre Existenz beginnt daher erst durch die Instantiierung die durch den Operator new den Konstruktor aufruft Daher werden solche norma len Eigenschaften genauer als Instanzeigenschaften bezeichnet Wenn Sie unbedingt m chten k nnen Sie Eigenschaften auch public deklarieren sie stehen dann direkt ber die Instanz zum Auslesen und ndern zur Verf gung Wenn berhaupt sollte dies aber nur mit eher unwichtigen Eigenschaften gesche hen die keine gef hrlichen Werte annehmen k nnen Beim Auto lie e sich bei spielsweise eine relativ harmlose String Eigenschaft f r dessen Farbe hinzuf gen Neue Eigenschaft public var farbe String Diese Eigenschaft k nnte direkt ber die Instanz gesetzt werden Beispiel var auto Auto new Auto 40 8 auto farbe rot Eine ganz besondere Bedeutung haben Eigenschaften die mit dem Schl sselwort static deklariert werden Es handelt sich um Klasseneigenschaften im Gegensatz zu den oben beschriebenen Instanzeigenschaften sie werden auch als statische Eigen schaften bezeichnet Die Besonderheit besteht darin dass Sie ber die Schreib weise Klasse Eigenschaft darauf zugreifen k nnen ohne eine Instanz zu erzeugen Damit dies n tzlich ist sollten Klasseneigenschaften in aller Regel public sein Genutzt werden sie typischerweise im Sinne von Ko
59. und m ssen dort das Skript mysql_install_db im Unterverzeichnis bin aufrufen das die Datenbank mysql mit den Tabellen f r Benutzerrechte und weitere Verwaltungsaufgaben ein richtet cd usr local mysql bin mysql_install_db Als N chstes m ssen einige Benutzer und Gruppenrechte angepasst werden die Dateien in allen MySQL Unterverzeichnissen sollen dem User root und der Gruppe mysql geh ren das Unterverzeichnis data mit den Datenbanken dagegen auch dem Benutzer mysql Geben Sie dazu folgende Anweisungen ein chown R root chown R mysql data chgrp R mysql Anschlie end k nnen Sie den Datenbank Server starten usr local mysql bin mysqld_safe user mysql amp Eine PHP Testumgebungeinrichten 319 Wenn MySQL beim Booten automatisch gestartet werden soll m ssen Sie in Ihrem Verzeichnis f r Startskripte unter vielen Linux Distributionen beispielsweise etc init d einen symbolischen Link auf das Skript support_files mysql server aus dem MySQL Verzeichnis erstellen Beispiel In s usr local mysql support_files mysql server etc init d mysql Anschlie end muss dieses Skript auf eine jeweils betriebssystemspezifische Art und Weise aktiviert werden SUSE und einige andere Linux Distributionen bieten daf r zum Beispiel das bequeme Kommando chkconfig an chkconfig a mysql Unter Linux Mac OS X und allen anderen UNIX Systemen k nnen Sie alternativ auch das Quellcode Paket kompilieren Entpacke
60. zu speichern dann gibt es eine Fehlermeldung Die folgende Version des vorigen Beispiels ist also fehlerhaft Zahl speichern var d Number 256 String speichern d Guten Morgen gt Fehlermeldung Die zugeh rige Fehlermeldung wird im Ausgabefenster angezeigt und sieht so aus Fehler Szene Szene 1 Ebene Ebene 1 Bild 1 Zeile 4 Typenkonflikt in Zuweisungsanweisung String gefunden aber Number wird ben tigt d Guten Morgen Wenn Sie die Typisierung benutzen dann m ssen beim Exportieren der Flash Player 6 oder 7 und ActionScript 2 0 aktiviert sein Das Fatale ist dass Flash andernfalls nicht etwa einfach den Export ver weigert sondern eine SWF Datei speichert die sich unvorhersagbar seltsam verh lt Neben Number besitzen auch die anderen oben vorgestellten einfachen Arten von Literalen ihre passenden Datentypen F r Strings steht der Datentyp String zur Ver f gung f r Boolesche Werte der Typ Boolean Die zahlreichen anderen Datentypen von ActionScript 2 0 sind nicht f r einfache Variablen gedacht sondern f r den Zugriff auf komplexe Objekte wie Datum und Uhrzeit oder gar grafische Bedienele mente Die wichtigste Frage ist aber welchen Vorteil die Typisierung hat denn zun chst einmal sieht sie wie eine Einschr nkung aus Das ist auch nicht ganz falsch aber man sollte es eher freiwillige Selbstbeschr nkung nennen Wenn Sie den Daten typ festlegen zwingen Sie sich selbst zu mehr Di
61. 10 4 Das G stebuch des FlashRock Music Shop 352 Kapitel 10 Interaktion mit Webserver Anwendungen
62. 11 1 N Der Einsatz dynamischer Klassen widerspricht dem Paradigma der Kapselung wie bei der imperativen Programmierung k nnen Sie die Datenstruktur von einer beliebigen Stelle in Ihren Skripten manipu lieren Es handelt sich um eine Art schnellen Hack der in ordentli chem objektorientiertem Design nichts verloren hat Wenn Sie Ihre Klassen elegant um zus tzliche Elemente erweitern m chten ver wenden Sie die weiter unten besprochene Vererbung X 242 Kapitel 7 ActionScript 2 0 Klassen Eigenschaften Mit Hilfe von Eigenschaften den innerhalb einer Klasse deklarierten Variablen wird die Datenstruktur der Klasse und ihrer k nftigen Instanzen entworfen In den meisten F llen sollten Eigenschaften mit Hilfe des Schl sselwortes private unzu g nglich gemacht werden die erw nschten Zugriffe erfolgen dann im jeweiligen Einzelfall durch passende Accessor Methoden Die Klasse Auto definiert insgesamt vier Eigenschaften private var kmStand Number private var tankFuellung Number private var maxTankFuellung Number private var verbrauch Number Der konkrete Verwendungszweck dieser Eigenschaften wurde bereits besprochen Ihre Anfangswerte erhalten sie durch Aufruf des Konstruktors dies ist die bliche Methode Es w re in gewisser Weise unlogisch den Eigenschaften schon bei der Deklaration Anfangswerte zuzuweisen selbst dann wenn sie durch die Parameter des Konstruktoraufrufs nicht beeinflusst w rden dies
63. 2 0 Klassen case XI var h Number this getHours if h gt 12 h 12 out preo h break case j var t Number 0 L ngen der Monate var mlengths new Array 31 28 31 30 31 30 31 31 30 31 30 Schaltjahr var j Number this getFullYear if j 4 0 amp amp j 100 0 j 400 mlengths 1 29 Tage der Vormonate for var i Number 0 i lt this getMonth i t mlengths i Tage im aktuellen Monat t this getDate out String t break case m var m this getMonth 1 out preo m break case AM var n this getMinutes out preo n break case Xp var h this getHours if h lt 12 f out a else out p m break case S var s this getSeconds out preo s break case Au out this getDay 1 break case Aw out String this getDay break case X out String this getFullYear break Praxisbeispiel Eine Komfort Datumsklasse 261 case out break default out return out getFormatPart Methode Gibt englisches strftime kompatibles Zeitelement zur ck param fPart strftime kompatibler Format Platzhalter public function getFormatPart fPart String String return getInternationalFormatPart fPart en getInternationalFormat Metho
64. 4 Glyphen Koreanisch Hangul Alle 11772 Glyphen Traditionelles Chinesisch O Ebene 1 5609 Gly Traditionelles Chinesisch Alle 18439 GlvoheuT Diese Zeichen einschlie en Auto Ausf llen Gesamtanzahl Zeichen 114 Nicht einbetten Abbrechen Abbildung 9 3 Auswahl der Zeichen einer Schriftart die f r ein dynamisches Textfeld exportiert werden sollen Damit der vollst ndige Zeichenvorrat zur Verf gung steht der f r deutschen Text erforderlich ist sollten Sie die folgenden Eintr ge anklicken Gro buchstaben A Z Kleinbuchstaben a z Ziffern 0 9 Satzzeichen Lateinisch einfach sowie Lateinisch I Verwenden Sie die STRG Taste Windows beziehungsweise amp Taste Macintosh um mehrere Zeilen auszuw hlen Unter Diese Zeichen einschlie en k nnen Sie optional auch eine eigene Liste von Zeichen angeben falls Ihr Feld beispielsweise einen Preis enthalten soll gen gt es Ziffern 0 9 anzuklicken und unten die drei zus tzlichen Zeichen Euro Komma und Strich anzugeben Auto Ausf llen f gt s mtliche Zeichen hinzu die Sie in der Arbeitsumgebung in das Textfeld geschrieben haben Textfelderund Komponenten in Flash 295 Wenn Sie Speicher und damit Ladezeit sparen m chten k nnen Sie stattdessen Nicht einbetten ausw hlen als Schriftart m ssen Sie dann einen der drei speziellen Eintr ge _serif allgemeine Serifenschrift _sans allgemeine serifenlose Schrift oder
65. Anwendungen XML verarbeiten Als Beispiel f r die Verarbeitung von XML Daten wird hier aus einem XML Doku ment ein verschachteltes Hyperlink Men erzeugt Nebenbei erfahren Sie wie eine Movieclip Instanz dynamisch dupliziert werden kann ffnen Sie die Datei beispiele kapitellO xml_menu fla von der beiliegenden CD ROM Die Anwendung ist bereits fertig so dass es hier keine Praxisanleitung son dern lediglich eine Beschreibung gibt Kopieren Sie die Datei menu xml aus dem selben Verzeichnis in das Wurzelverzeichnis Ihres Webservers zum Beispiel C Programme Apache Group Apache2 htdocs siehe oben Erst dann k nnen Sie den Film testen Auf der B hne befindet sich eine einzelne Movieclip Instanz mit dem Namen iten Wenn Sie ihre Eigenschaften betrachten stellen Sie fest dass es sich um eine Instanz von menuitem handelt Rufen Sie daher zun chst die Definition des Symbols menuitem auf Hier finden Sie die vier Ebenen hg Hintergrundfarbverlauf txt ent h lt ein dynamisches Textfeld mit dem Instanznamen txtbox und der Variablenzu ordnung cap f r die dynamische Beschriftung btn Instanz des transparenten Schaltfl chensymbols button und action Bildaktion Die Bildaktion erstellt lediglich eine Color Instanz zum dynamischen Einf rben der Beschriftung bei Mausber hrung var c new Color this txtbox Etwas umfangreicher ist das Skript das der Schaltfl che zugeordnet wurde on rollOver c setRGB OXxFF0000
66. Bildnummer v stop Esc st stopallsounds Esc ss ZI Browser Netzwerk ZI Druckfunktionen ZI verschiedene Funktionen ZI Mathematische Funktionen A Umwandlungsfunktionen ZI Movieclipsteuerung Bild 1 v PHa A steipthife 1lsotoanaPlayii A Globale Eigenschaften A Operatoren A Anweisungen r E A Aktuelle Auswahl E Ebene 1 Bild 1 E f sener E Ebene 1 Bild 1 Wenn Ihr manuell eingegebener ActionScript Code Syntaxfehler ent u h lt verweigert Flash den Wechsel in die Skripthilfe bis Sie die Feh ler beseitigt haben Zeilennummern und n here Informationen ber die Fehler erhalten Sie wenn Sie Syntax berpr fen w hlen ActionScript Grundelemente In diesem Abschnitt erhalten Sie eine Einf hrung in wichtige ActionScript Grund elemente Hier werden unter anderem die wichtigen Anweisungen zur Filmsteuerung vorgestellt anschlie end werden die klassischen Elemente einer Programmiersprache wie Variablen benannte Zwischenspeicher Fallentscheidungen wenn dann und Schleifen mache n mal mache solange eingef hrt ActionScript Grundelemente 181 kommen Ihnen die Beschreibungen hier m glicherweise ein wenig u theoretisch vor In diesem Fall k nnen Sie auch zuerst die Praxisbei spiele am Ende dieses Kapitels durcharbeiten und dann hierher zur ckkehren um die Theorie
67. CD ROM Sie befindet sich im Verzeichnis beispiele kapitellO und hei t guest_start fla Wenn Sie Ihre fertige Datei berpr fen m chten k nnen Sie die vorgefertigte Ver sion guest_ziel fla laden PHP Zugriff auf MySQL Datenbanken Weiter oben wurde bereits kurz erl utert wie PHP arbeitet und wie Sie MySQL Datenbanken erstellen k nnen Hier soll nun angesprochen werden wie Sie aus Ihren PHP Skripten heraus auf MySQL Daten zugreifen k nnen Ein kleines Prob lem besteht darin dass es zwei verschiedene Schnittstellen daf r gibt Wenn Sie PHP ab 4 3 x und MySQL ab 4 1 einsetzen k nnen Sie die neue mysqli Schnitt stelle benutzen andernfalls insbesondere bei MySQL 4 0 x sind Sie auf den klassi schen Zugriff angewiesen Hier wird nur die neue Methode erl utert Beachten Sie aber bitte dass die Versionen bei manchen Webhostern noch nicht neu genug sind f r diesen Fall finden Sie auf der Website zum Buch eine Anleitung zur Verwendung der alten Schnittstelle Zuerst m ssen Sie eine Verbindung zum Datenbank Server herstellen Dazu ben ti gen Sie dessen Domain Namen oder IP Adresse daneben sind Benutzername und Passwort erforderlich Wenn Sie sich an die Installationsanleitung weiter oben gehalten haben laufen Datenbank und Webserver auf demselben Rechner Ange nommen Sie verwenden den oben erstellten Benutzer dbuser mit dem Passwort geheim und m chten auf die Datenbank musik zugreifen dann sieht die Anweisung f r die D
68. Diese bildet eigentlich den wichtigsten Vorteil einer Flash Anwendung gegen ber einer statischen HTML basierten Website Es passiert etwas w hrend die Seite bereits im Browser angezeigt wird Konkret wer den hier drei kleine Beispiele vorgestellt Zuerst bekommt die Pr sentation aus Kapitel 4 eine Steuerung Anschlie end wird eine interaktive Simulation vorgestellt in der Sie verschiedene Gitarrenakkorde ausw hlen und anh ren k nnen Zu guter Letzt erfahren Sie auch noch wie ein kleines Spiel programmiert wird Navigation f r die Produktschau Der Ausgangspunkt f r diese Anwendung ist im Prinzip mit dem Ergebnis des Pra xisbeispiels aus Kapitel 4 identisch Es wurden lediglich einige Schaltfl chensym bole hinzugef gt Sie finden die neue Datei unter beispiele kapitel6 katalog_start fla auf der CD zum Buch Die Aufgabe f r dieses Beispiel besteht darin vier Schalt fl chen hinzuzuf gen die von links nach rechts folgende Aufgaben erf llen e Sprung zum vorigen Produkt e Anhalten e Weiterspielen e Sprung zum n chsten Produkt Wenn der Film angehalten ist soll er auch nach einem Klick auf einen der Sprung Buttons wieder stehen bleiben falls er dagegen gerade l uft wird er vom Sprungziel aus weiter abgespielt Eine globale Variable namens is_playing trifft die zugeh rige Entscheidung ob gotoAndPlay oder gotoAndStop ausgef hrt werden soll ffnen Sie zun chst die Bibliothek und wechseln Sie in den Ordner button
69. Diese wird wie folgt erstellt var klang new Sound Anschlie end k nnen Sie folgende Methode des Objekts benutzen um eine Sound Datei zu laden klang loadSound URL Stream Die URL gibt die Quelle der Sounddatei an w hrend der Boolean Parameter Stream den Wert true f r Stream oder false f r Ereignis Sound erh lt Das folgende Bei spiel l dt die lokale Datei knall mp3 als Ereignis Sound klang loadSound knall mp3 false Der nachfolgende Code l dt dagegen die Datei track2 mp3 aus dem untergeordne ten Ordner musik als Stream Sound klang loadSound musik track2 mp3 true Sound Objekte erm glichen brigens auch die dynamische Steuerung des Sounds der darin abgespielt wird Beispielsweise regelt ihre Methode setvolume die Gesamtlautst rke die zul ssigen Werte liegen zwischen 0 aus und 100 Maxi mum dies ist die Voreinstellung Die folgende Anweisung setzt die Lautst rke von klang auf 50 klang setVolume 50 Die aktuelle Lautst rke k nnen Sie brigens mittels klang getVolume auslesen Mit Hilfe der Methoden setPan und getPan k nnen Sie auf hnliche Weise die Balance setzen beziehungsweise auslesen Die Werte reichen von 100 nur linker Kanal ber 0 neutral bis 100 nur rechter Kanal Variablen laden Eine letzte bemerkenswerte F higkeit von SWF Filmen besteht darin dass sie Vari ablen aus externen Textdateien laden k nnen Besonders sinnvoll wird dies im Zusammenhang mi
70. Element am Ende anf gen var a new Array 1 2 3 a push 4 aist nun 1 2 3 4 pop Element am Ende entfernenund var a new Array 1 2 3 zur ckgeben var b a pop bist 3 aist 1 2 unshift Wert Element am Anfang einf gen var a new Array 3 5 a unshift 1 a ist nun 1 3 5 shift Element am Anfang entfernen var a new Array 2 4 6 und zur ckgeben var b a shift bist 2 aist 4 6 slice i1 i2 Elemente von Index i1 bis aus var a new Array 0 2 4 6 8 schlie lich i2 zur ckgeben var b a slice 3 5 a bleibt b ist 4 6 splice 1 Elemente ab Index i zur ckge var a new Array 1 2 3 4 5 i 1 wert _ benundentfernen optionalde var b a splice 2 2 angegebenen Werte einf gen a ist 1 2 5 b ist 3 4 reverse Array umdrehen var a new Array 1 2 3 4 5 a reverse a ist 5 4 3 2 1 sort Optionen Array sortieren einige Optionen var a new Array 2 7 5 1 werden weiter unten im Text a sort beschrieben a ist 1 2 5 7 join Trenner Elemente des Arrays zu einem var a new Array 1 3 5 durch Trenner getrennten var b a join String verbinden bist 1 3 5 F r die Methode sort die die Elemente des Arrays sortiert stehen zahlreiche Optionen zur Verf gung Sie k nnen diese Konstanten entweder numerisch oder symbolisch angeben Als Beispiele f r die Wirkung dieser Optionen werden fol gende Arrays verwe
71. In jeder Szene wird eine neue aufger umte Zeitleiste angezeigt die Sie wie gewohnt mit Ebenen und Schl sselbildern ausstatten k nnen Zur Verwaltung von Szenen wird das Bedienfeld Szene benutzt Sie k nnen es mit dem Befehl Fenster gt Andere Bedienfelder gt Szene oder der Tastenkombination Umschalt F2 ffnen In Abbildung 6 9 wird die Palette gezeigt 190 Kapitel 6 Interaktivit t durch ActionScript Abbildung 6 9 Das Bedienfeld Szene Die drei Schaltfl chen in der unteren Leiste haben von links nach rechts folgende Bedeutung e Szene duplizieren Eine Kopie der aktuellen Szene wird erstellt Das ist bei spielsweise n tzlich wenn Sie eine l ngere Sequenz nachtr glich in Szenen auf teilen m chten Sie k nnen sie mehrfach duplizieren und dann jeweils unterschiedliche Teile der Zeitleiste l schen e Neue Szene Eine neue leere Szene wird eingef gt Dies funktioniert alternativ auch ber den Men befehl Einf gen gt Szene e Szene l schen Die aktuelle Szene wird mit Sicherheitsnachfrage gel scht Um zu einer bestimmten Szene zu wechseln brauchen Sie diese lediglich anzukli cken Sie k nnen sie aber auch aus dem Szenen Pop up Men am Kopf des Doku mentfensters ausw hlen Per Doppelklick in der Szenen Palette l sst sich eine Szene umbenennen die Reihenfolge k nnen Sie durch einfaches Ziehen nach oben oder unten ver ndern Im fertigen Film werden standardm ig alle Szenen nachein
72. Inhalten bestand Erst mit steigenden Geschwindigkeiten traten die Nachteile der Frames in den Vor dergrund Frame basierte Seiten lassen sich nicht ordentlich in der Favoriten Liste eines Browsers speichern Zudem ist es problematisch wenn Suchmaschinen nur den Inhalt einzelner Frames finden Aus diesen Gr nden sollten neu konzipierte Sites in aller Regel auf den Einsatz von Frames verzichten Der HTML Code zur Definition von Frames ist nicht weiter kompliziert Eine erste HTML Seite teilt das Fenster horizontal und oder vertikal in mehrere Frames auf und l dt anschlie end andere Dokumente hinein Das Frame Definitions Doku ment enth lt statt eines lt body gt Tags ein lt frameset gt Tag Das folgende Beispiel unterteilt das Fenster in einen linken Bereich von 120 Pixeln Breite und einen belie big breiten rechten Bereich lt html gt lt head gt lt title gt Frameset lt title gt lt head gt lt frameset cols 120 gt lt frame src navi html gt lt frame src start html name inhalt gt lt frameset gt lt html gt Der Parameter name im zweiten rechten Frame besagt dass Hyperlinks aus einem anderen Frame heraus zum Beispiel aus dem linken das Ziel inhalt angeben k nnen um ein neues Dokument in dieses Frame zu laden Ein HTML Hyperlink in der Datei navi html der die Seite kontakt html in das Frame inhalt laden soll sieht zum Beispiel so aus lt a href kontakt html target inhalt gt Kontakt lt a gt
73. L Tags zur Formatierung dynamischer Textfelder benutzen indem Sie der verkn pften Variab len einen Wert zuweisen der diese enth lt Welche Tags zul ssig sind und wie sie angewendet werden sehen Sie in Tabelle 9 1 Sie k nnen diese Tags gem den all gemeinen Hinweisen zu HTML in Kapitel 5 beliebig ineinander verschachteln um ihre Wirkung zu kombinieren Tabelle 9 1 Zul ssige HTML Tags zur Formatierung der Inhalte dynamischer Textfelder HTML Tag Erl uterung lt b gt Text lt b gt stellt den Text fett dar lt i Text lt i gt stellt den Text kursiv dar lt u Text lt u gt stellt den Text unterstrichen dar lt p Textblock lt p gt setzt den Textblock in einen eigenen Absatz lt font face Schriftart Text lt font gt stellt f r Text die angegebene Schrift ein lt font size Schriftgr e gt Text lt font gt stellt f r Text die Schriftgr e in Punkt ein lt font color Schriftfarbe gt Text lt font gt stellt f r Text die Schriftfarbe ein hexadezimales RGB z B 00FF00 f r Gr n ActionScript Eigenschaften f r Textfelder Wie oben bereits erw hnt k nnen Sie Textfeldern nicht nur eine Variable sondern auch einen Instanznamen zuordnen Dieser ist der Schl ssel zu einigen Methoden deren Komplexit t den Rahmen dieses Kapitels sprengen w rde und zahlreichen Eigenschaften Exemplarisch sollen hier nur vier sehr n tzliche Eigenschaften vor gestellt werden Mit tabIndex und tabEnabled l sst sich die R
74. M cds WHERE cd_interpret 2 cd nr cd _ interpret cd titel JAHR cd_songs 1 2 III Sides to Every Story 1992 14 2 2 Pornograffitti 1990 13 2 rows in set 0 00 sec Zu guter Letzt sollten Sie sich noch ein Beispiel daf r anschauen wie Relationen in der Praxis genutzt werden Dazu soll eine Abfrage formuliert werden die den Inter preten und den Titel jeder CD ausgibt Die Beziehung kann entweder ber eine rela tiv komplizierte JOIN Klausel oder mit Hilfe von WHERE formuliert werden hier sehen Sie Letzteres mysql gt SELECT int_name cd_titel FROM interpreten cds gt WHERE int_nr cd_interpret int name cd_ titel Extreme III Sides to Every Story Extreme Pornograffitti Metallica Metallica 3 rows in set 0 08 sec Wenn mehrere Tabellen gleichnamige Felder enthalten die Sie ansprechen m ch ten m ssen Sie diese brigens in der Form Datenbankname Feldname notieren Bei spiele cds cd_titel oder interpreten int_nr Das vorliegende Beispiel kommt ohne dieses Hilfsmittel aus weil in jeder Tabelle konsequent Namenspr fixe hier c
75. Stufe wie Sie sie von loadMovieNum her kennen loadvariables l dt die Variablen aus der angegebenen Datei nicht in den Haupt film oder auf eine h here Stufe sondern in eine Movieclip Instanz Genau wie load Movie k nnen Sie auch diese Anweisung sowohl als normale Funktion als auch als Movieclip Instanzaktion schreiben Jedes der beiden folgenden Beispiele l dt die Variablen aus der Datei vars2 txt in den Movieclip varclip loadVariables vars2 txt varclip klassisch varclip loadVariables vars2 txt objektorientiert Praxisbeispiel Dynamischer Katalog und verkn pfte Website Das dynamische Laden von JPEG Bildern sowie von Variablen wird hier an einer neuen Variante eines Produktkatalogs gezeigt in dem die Abbildungen und ihre Beschreibungen beziehungsweise Werbetexte aus externen Dateien stammen Anschlie end werden s mtliche bisher vorgestellten Dokumente zu einer komplet ten Website verbunden 1 Einfache Textdateien geben keinen Zeichensatz vor deshalb klappt es beim Laden normalerweise nicht mit Umlauten Praxisbeispiel Dynamischer Katalog und verkn pfte Website 277 Produktkatalog mit dynamischen Bildern Wenn Sie eine Site mit zahlreichen Abbildungen betreiben bietet es sich an diese Bilder dynamisch zu laden Am besten nummerieren Sie die Dateinamen nach einem einfachen Schema durch um auch die Ladebefehle selbst zu automatisieren Ein realer Online Shop ist sicherlich ein gutes Beispiel f r
76. Taste gedr ckt Anwendungen f r Smartphones exportieren da sie nicht mit einer Maus ausgestattet sind k nnen Steuerungsaufgaben nur per Tasten druck durchgef hrt werden W Das Ereignis keyPress ist besonders wichtig wenn Sie FlashLite kd Zu der direkten Zuweisung von Ereignissen an Button Instanzen gibt es eine interessante Alternative die Ihnen hilft Ihren Code an weniger Stellen zu sammeln Wenn Sie einer Schaltfl chen Instanz einen Instanznamen zuweisen k nnen Sie ihr in einem Bildskript eine Ereignisprozedur englisch Event Handler zuordnen Kli cken Sie die Instanz dazu an und geben Sie links oben in der Eigenschaftenleiste unter dem Eintrag Schaltfl che einen eindeutigen Namen ein siehe Abbildung 6 7 Er sollte den weiter oben angesprochenen Regeln f r ActionScript Bezeichner gen gen Momentan soll der Instanzname weiter als Beispiel dienen i Y Eigenschaften Filter Parameter a am z Instanz von test Farbe keine a weiter Austauschen Als Schaltfl che behandeln Bas 228 9 x 304 3 Mischung Normal 7 L H 228 9 Y 343 4 J Bitmap Zwischenspeicherung zur Laufzeit verwenden K Abbildung 6 7 Zuweisung eines Instanznamens f r eine Schaltfl che Nun k nnen Sie in einem Bild Skript der Zeitleiste in der sich die Instanz befindet die Ereignisprozedur erstellen Ihr Name ist Instanzname onEreignis wobei Ereig ActionScript Grundelemente 187
77. Wert zur ckgeben Demzufolge kann dieser Typ nat rlich nicht f r Variablen verwendet werden Die restlichen Methoden sind so genannte Accessor Methoden sie erlauben den indirekten Zugriff auf Eigenschaften die eigentlich privat sind Dies scheint dem Ansatz der Kapselung zu widersprechen In Wirklichkeit k nnen Sie sich aber im Einzelfall aussuchen f r welche Eigenschaften Sie Accessor bereitstellen und ob diese mit Beschr nkungen versehen werden sollen Typische Accessor Methoden lassen sich in Getter und Setter Methoden unterteilen hei en entsprechend getEigenschaft oder setEigenschaft und dienen dem Auslesen beziehungsweise ndern der jeweiligen Eigenschaft 3 Dies ist aber nur meine Erfahrung manche Programmierer f hlen sich auch ohne this wohl 238 Kapitel 7 ActionScript 2 0 Klassen Die Klasse Auto definiert nur Getter und keine Setter Methoden da die Eigenschaf ten nur gelesen aber nicht direkt ge ndert werden sollen F r die Manipulation sind fahren und tanken zust ndig die nur zwei der vier Eigenschaften ber haupt ndern und vor den nderungen Plausibilit tstests durchf hren Der Daten typ einer Getter Methode entspricht dem Typ der jeweiligen Eigenschaft die einzige Anweisung ist return this Eigenschaft Hier zum Beispiel die Methode getKmStand public function getKmStand Number return this kmStand Setter Methoden lernen Sie weiter unten in diesem Kapitel kennen Der
78. Zahl gerade durch zwei teilbar ist ansonsten false function istGerade zahl if zahl 2 0 return true Wenn wir noch da sind war sie ungerade return false Wie Sie sehen braucht diese Funktion kein else die Tatsache dass das return noch nicht stattgefunden hat und dass die Funktion deshalb weiter ausgef hrt wird bedeutet bereits dass die Bedingung falsch war Sie k nnen die Funktion nun zum Beispiel zur Bedingungspr fung benutzen if istGerade b trace b ist gerade Hier noch ein weiteres praktisches Beispiel das Sie etwa zur berpr fung von Benutzereingaben einsetzen k nnen es testet ob der bergebene Wert eine Zahl ist oder nicht function istZahl wert Die Funktion macht es sich sehr einfach Sie gibt das Gegenteil der eingebauten Funktion isNaN zur ck is not a number Diese liefert true wenn das Argu ment keine Zahl ist und andernfalls false Durch das vorangestellte wird dieses Verhalten umgekehrt return isNaN wert ActionScript Grundelemente 211 Beachten Sie dass auch Funktionen und ihre Parameter feste Datentypen besitzen k nnen Die folgende ActionScript 2 0 Variante von istGerade akzeptiert aus schlie lich Zahlen und besitzt selbst den Datentyp Boolean function istGerade zahl Number Boolean if zahl 2 0 return true return false Movieclips steuern Die besondere Leistungsf higkeit von ActionS
79. _typewriter Schreibmaschinenschrift mit fester Laufweite ausw hlen Sie k nnen Text im Textfeld markieren und neben dem Kettensymbol eine URL eintragen Dadurch wird der markierte Text zum Hyperlink auf diese Adresse Unter Ziel k nnen Sie zus tzlich den Namen eines Browserfensters oder Frames angeben in das die entsprechende Seite geladen werden soll Die speziellen vorge fertigten Eintr ge bedeuten dabei Folgendes siehe dazu Kapitel 8 _self ist das aktuelle Fenster oder Frame _parent steht f r das bergeordnete Frame _top f r das gesamte Browserfenster ohne Frames _blank schlie lich ffnet die verlinkte Website in einem neuen leeren Browserfenster F r Eingabetext sind fast dieselben Einstellungen verf gbar Hier l sst sich lediglich kein Hyperlink einstellen Daf r k nnen Sie die Maximale Zeichenanzahl begrenzen die ein Benutzer eingeben kann Die Voreinstellung O bedeutet aller dings nicht etwa keine Zeichen sondern beliebig viele Eine Uhr im dynamischen Textfeld Damit Sie den Umgang mit Textfeldern auch praktisch nachvollziehen k nnen folgt hier zun chst einmal ein kurzes Praxisbeispiel au er der Reihe In einem dyna mischen Textfeld mit HTML Formatierung sollen Datum und Uhrzeit angezeigt werden Dazu wird die in Kapitel 7 entwickelte Klasse CustomDate verwendet stellen Sie sicher dass sich die Datei CustomDate as im aktuellen Verzeichnis befindet Erstellen Sie zun chst ein dynamisches Textfeld Stellen
80. a bernommen wurde Der besondere Vorteil von ColdFusion ist die leicht zu erlernende Sprache CFML ColdFusion Markup Lan guage die HTML unmittelbar um Server Anwendungs Tags erweitert ColdFusion verf gt bereits ab Werk ber eine definierte Schnittstelle zu Flash Filmen Flash Remoting Macromedia Flash Remoting MX verbindet Flash mit einem Enterprise Application Server wobei es eine Variante f r J2EE Java und eine f r Microsoft NET gibt Daneben existieren Drittanbieter L sungen f r die Zusammenarbeit mit Perl und PHP Anwendungen Auf diese Weise werden dynamisch generierte Flash Filme zur Benutzeroberfl che f r Enterprise Webanwendungen Flash Remoting erweitert ActionScript um zahlreiche Funktionen zur Kommunikation mit Server Anwen dungen Ein weiterer Schwerpunkt ist die Unterst tzung von SOAP basierten Web Services Eine PHP Testumgebung einrichten Im n chsten Abschnitt lernen Sie einige Grundlagen der Programmiersprache PHP kennen und erfahren wie Sie Flash Anwendungen erstellen k nnen die mit PHP Programmen kommunizieren Um diese Technologie auf einer realen Website ein 312 Kapitel 10 Interaktion mit Webserver Anwendungen zusetzen ben tigen Sie einen Hosting Dienst der PHP Unterst tzung anbietet Bei gro en deutschen Webhostern wie 1 amp 1 oder Strato ist diese bereits in den mittle ren Tarifen enthalten Aber sicherlich m chten Sie die hier vorgestellten und Ihre eigenen Anwendungen auch auf Ih
81. a den Wert 5 a 5 Es ist empfehlenswerter eine Variable bei der ersten Verwendung mit dem Schl s selwort var zu deklarieren das hei t ihre k nftige Verwendung anzuk ndigen Dies kann entweder separat geschehen oder zusammen mit einer Wertzuweisung Die explizite Deklaration sieht so aus Nariable b deklarieren var b b einen Anfangswert zuweisen b 7 Eine integrierte Deklaration mit Wertzuweisung hat dagegen folgendes Format var c Hallo Durch die Deklaration ordnen Sie eine Variable ausdr cklich einem Geltungsbereich zu Jede Variable gilt ausschlie lich innerhalb derjenigen Zeitleiste Funktion oder Klasse in der sie deklariert wurde Wie Sie auf die Variablen anderer Zeitleisten zugreifen k nnen erfahren Sie im n chsten Abschnitt Standardm ig besitzt eine Variable in ActionScript keinen festgelegten Datentyp Sie k nnen beispielsweise ohne Weiteres zuerst eine Zahl und sp ter einen String darin speichern Deklarieren und Zahl speichern var d 256 String speichern d Guten Morgen In ActionScript 2 0 der in Flash MX 2004 neu eingef hrten Version k nnen Sie Variablen aber auf Wunsch auch typisiert benutzen Bei der Deklaration l sst sich von vornherein ein Datentyp festlegen dem die Variable dauerhaft entsprechen ActionScript Grundelemente 195 muss Der Datentyp f r Zahlen ist etwa Number Wenn Sie versuchen einen String oder sonstigen Wert in einer Variablen dieses Typs
82. ablen im URL Format sendet siehe Kapitel 8 Weiter oben wurde bereits angesprochen wie Sie in einem PHP Skript auf Formu lardaten zugreifen k nnen Flash Variablen werden auf dieselbe Weise empfangen Dabei spielt es keine Rolle ob sie durch getURL oder loadVariablesNum versandt wurden Je nach HTTP Versandmethode liegen die Variablen die der Flash Film bermittelt hat in einem der globalen Arrays _GET beziehungsweise _POST vor Betrachten Sie als Beispiel folgende ActionScript Zeilen in einem Flash Film 330 Kapitel 10 Interaktion mit Webserver Anwendungen var vendor Gibson var product LesPaul loadVariablesNum catalog php 0 GET Die loadVariablesNum Anweisung ruft das PHP Skript catalog php auf das sich aufgrund der relativen URL im gleichen Webserver Verzeichnis befinden muss wie die SWF Datei selbst In der PHP Anwendung k nnen Sie die beiden Variablen vendor und product folgenderma en aus _GET auslesen vendor GET vendor product _GET product Nat rlich brauchen Sie in PHP nicht unbedingt identische Variablennamen hier vendor und product zu w hlen Die entsprechenden Variablen sollten brigens auch dann definiert sein wenn die SWF Datei sie wider Erwarten nicht liefert bei spielsweise wenn Sie sich beim Variablennamen verschrieben haben oder wenn ein Benutzer ein Textfeld nicht ausgef llt hat Zu diesem Zweck k nnen Sie folgende Ausdrucksweise verwen
83. abzufangen throw muss eine meist anonyme Instanz der Standardklasse Error auswerfen wenn Sie m chten k nnen Sie auch eine eigene davon abgeleitete Klasse verwen den Das Einzige was eine solche Fehlerklasse ben tigt ist eine ffentliche String Eigenschaft namens message Das folgende Beispiel leitet eine Klasse namens Kraft stoffMangelException von Error ab sie soll in der unten vorgestellten Neufassung der Klasse Auto ausgel st werden wenn der Kraftstoff nicht ausreicht um die gew nschte Anzahl von Kilometern zu fahren class KraftstoffMangelException extends Error public var message String Der Kraftstoff reicht nicht Speichern Sie diese Klasse als KraftstoffMangelException as in demselben Verzeich nis wie Auto F r den anderen m glichen Fehler den Versuch zu viel zu tanken wird brigens ein einfacher Error mit angepasstem Meldungstext verwendet um auch dieses Verfahren zu demonstrieren Hier die komplette Neuimplementierung von Auto mit Ausnahmen class Auto private Eigenschaften private var kmStand Number 252 Kapitel 7 ActionScript 2 0 Klassen private var tankFuellung Number private var maxTankFuellung Number private var verbrauch Number Konstruktor public function Auto m Number v Number this maxTankFuellung m this verbrauch v Zu Anfang km Stand 0 Tank voll this kmStand 0 this tankFuellung this maxTankFuellung Private Rechenmetho
84. achte bereits diese Version die entscheidenden Neuerungen die Flash zu einer programmierbaren Umge bung machten Variablen dynamische Ausdr cke Fallentscheidungen und Schleifen Erst in Version 5 wurde ActionScript dann formal als echte Programmiersprache eingef hrt Um m glichst vielen Web Entwicklern einen leichten Einstieg zu erm glichen wurde ActionScript ECMA 262 kompatibel gemacht und basierte somit auf demselben Standard der European Computer Manufacturers Association wie auch die verbreitete Browser Skriptsprache JavaScript Damit besa Action Script eine Syntaxgrundlage die bereits bei ihrer Einf hrung weithin bekannt war In Flash MX erfuhr ActionScript eine recht umfangreiche Erweiterung durch neue Funktionen Zwei prinzipielle Neuerungen wurden dagegen erst in Flash MX 2004 eingef hrt Basierend auf der 3rd Edition des ECMA 262 Standards wurden feste Datentypen sowie vollwertige Objektorientierung durch echte Klassen eingef hrt Diese Erweiterungen rechtfertigen die neue Bezeichnung ActionScript 2 0 Falls Ihnen Begriffe wie Datentypen oder Objektorientierung nichts sagen keine Sorge Weiter unten in diesem Kapitel erfahren Sie u Genaueres dar ber In Flash 8 wurde ActionScript 2 0 nicht wieder grunds tzlich umgebaut aber um diverse Objekte und Funktionen erweitert Diese dienen unter anderem der Skript steuerung der neuen F higkeiten wie Mischmodi und Filter Inzwischen wird bei Macromedia an ActionScript 3
85. aden 4 lkw fahren 100 trace Der LKW hat Ikw getkmStand km auf dem Tacho und lkw getTankFuellung 1 im Tank nDie Ladung betr gt lkw getLadung t Die Ausgabe lautet erwartungsgem Der LKW hat 100 km auf dem Tacho und 82 1 im Tank Die Ladung betr gt 4 t Etwas berraschender ist vielleicht dass Sie eine LKW Instanz verwenden k nnen wo eine Auto Instanz erwartet wird beispielsweise in folgender bereits beschriebe nen Version der Funktion auskunft function auskunft a Auto Void trace Tankf llung a getTankFuellung Kilometerstand a getkmStand LKW Instanz erstellen var lkw LKW new LKW 120 22 14 Auskunft erhalten auskunft lkw Klassen entwerfen und programmieren 249 Dies offenbart ein allgemeines Merkmal der Vererbung Jede Instanz einer Klasse ist implizit auch Instanz ihrer Elternklasse sowie aller bergeordneten Klassen Diese Tatsache wird in der Objektorientierung als IS A Beziehung bezeichnet Jeder LKW ist ein Auto Eine v llig andere Relation ist brigens die HAS A Beziehung sie liegt vor wenn eine Klasse eine Instanzeigenschaft enth lt die Instanz einer anderen Klasse ist Beispielsweise k nnte man einen Tank als separate Klasse modellieren und in verschiedene Fahrzeuge einbauen Vererbung funktioniert brigens sowohl beliebig tief Sie k nnen von jeder abgelei teten Klasse wiederu
86. aktuelle Instanz f r die der Konstruktor mittels new oder die jeweilige Methode gerade ausgef hrt wird Im vorliegenden Fall dient es also dem Bezug auf die Eigenschaftsvariablen der soeben erzeugten Instanz innerhalb des Konstruktors oder der Methode keine gleichnamige lokale Variable gibt Allerdings sollten Sie es sich f r den Zugriff auf die Eigenschaften grunds tzlich angew hnen this zu verwenden So wird auch ohne Bl ttern in einer langen Klassendefinition immer sofort klar dass eine Eigenschaft und keine lokale Variable gemeint ist Wenn Sie eine Klasse erst einige Monate nach ihrer Erstellung wieder bearbeiten wird Ihnen dies die Arbeit enorm erleichtern Fi u Es ist absolut legal das Schl sselwort this wegzulassen solange es kd Nach dem Konstruktor folgen die Methoden Die beiden ersten erledigen die eigentlichen Aufgaben des Autos eine bestimmte Anzahl von Kilometern fahren falls der Sprit reicht beziehungsweise die angegebene Menge Benzin tanken wenn es in den Tank passt Im Prinzip funktioniert beides genau wie beim imperativen Auto und d rfte verst ndlich sein Betrachten Sie als Beispiel die Methode tan ken public function tanken 1 Number Void Nur tanken falls die Kapazit t ausreicht if this tankFuellung 1 lt this maxTankFuellung tankFuellung 1 Der Datentyp von fahren und tanken ist Void es handelt sich um eine spezielle Angabe f r Funktionen die keinen
87. ander abgespielt F r die Sprungbefehle haben Szenen nat rlich ebenfalls eine Bedeutung Sie k nnen bei gotoAndStop und gotoAndPlay auf Wunsch die beiden Argumente Szene und Bild angeben Wenn Sie zu Bild 1 in der Szene hauptfilm springen m chten sieht dies beispielsweise so aus gotoAndPlay hauptfilm 1 Ein Sprung zum Frame menue in der Szene intro funktioniert dagegen so gotoAndStop menue intro brigens sind Bildmarkierungen auch ber Szenengrenzen hinweg g ltig Sie k n nen diese Anweisung also auch einfach folgenderma en schreiben gotoAndStop intro ActionScript Grundelemente 191 Szenen verwenden Alternativ zur Szenen Syntax k nnen Sie also auch u immer die eigentliche Bildnummer angeben Angenommen Ihr Film besitzt zwei Szenen namens intro und hauptfilm intro besteht aus 20 Bildern es z hlt jeweils die Ebene mit den meisten Bildern Die bei den folgenden Befehle bewirken jeweils einen Sprung zu Bild 1 von hauptfilm u Die Bilder eines Films werden auch dann durchnummeriert wenn Sie gotoAndPlay hauptfilm 1 7 mit Szenenangabe gotoAndPlay 21 reine Bildnummer Es gibt noch einige weniger h ufig verwendete Sprungbefehle die sich vornehmlich zum einfachen Bl ttern eignen Der Vollst ndigkeit halber sollen sie hier erw hnt werden nextFrame ein Bild weiter prevFrame ein Bild zur ck nextScene eine Szene weiter prevScene eine Szen
88. ank ab bei einer E Commerce Anwen dung leitet sie sie sogar als Bestellung weiter Dieser Punkt ist der entscheidende Unterschied zu einer Webanwendung mit HTML Oberfl che Die PHP Anwendung generiert kein vollst ndiges Doku ment das an den Browser gesendet wird sondern URL codierte Name Wert Paare die der Flash Player ber loadVariablesNum beziehungsweise loadVari ables laden kann Zu guter Letzt wird das Ergebnis der Webanwendung angezeigt Wieder wird loadVariablesNum oder loadVariables verwendet um die dynamisch erzeugten Daten einer PHP Anwendung zu laden Diese Daten k nnen dann beispielsweise zum Ausf llen dynamischer Textfelder oder f r Fallentscheidun gen genutzt werden Beachten Sie dass nicht alle Flash basierten Webanwendungen die hier pr sentierte Reihenfolge einhalten m ssen Einige von ihnen ben tigen nicht einmal alle diese Aspekte Beispielsweise k nnte sich ein Produktkatalog der seine Inhalte aus einer Datenbank bezieht auf den Punkt 4 der Aufz hlung beschr nken Umgekehrt br uchte eine kurzfristige Bestellung beispielsweise bei einem Pizza Service nicht unbedingt eine dynamische R ckmeldung so dass hier die Punkte 1 und 2 gen gen d rften Hier soll an einem kurzen Beispiel gezeigt werden wie PHP Anwendungen bli cherweise aussehen Im n chsten Abschnitt geht es n mlich ausschlie lich um die Zusammenarbeit mit Flash die sich von der blichen dynamischen Erze
89. arbeiten gt Suchen und ersetzen oder STRG F au erhalb des Skriptfensters verwenden Zielpfad einf gen Erm glicht die Auswahl einer Symbolinstanz die Sie im Skript ansprechen m chten aus einer Baumhierarchie e Syntax berpr fen STRG T Sucht nach schwerwiegenden Fehlern im Skript und zeigt diese an 178 Kapitel 6 Interaktivit t durch ActionScript ein Skript gar nicht erst ausgef hrt werden kann Formal korrekte aber logisch fehlerhafte Skripte werden dagegen erst einmal ausge f hrt verhalten sich aber anders als erwartet Solche Fehler sind nur sehr schwer zu entdecken Weiter unten wird die n tzliche Funktion trace erl utert die Ihnen dabei helfen kann u Syntaxfehler sind relativ leicht zu finden denn sie f hren dazu dass u e Auto Format STRG Umschalt F Formatiert das aktuelle Skript sauber neu Die Regeln f r die Formatierung k nnen Sie unter Bearbeiten gt Vorein stellungen unter der Kategorie Auto Format festlegen e Codehinweis zeigen STRG Leertaste In der Regel erscheinen bereits w h rend der Skripteingabe kleine Marken die die Syntax von Funktionen erl utern siehe Abbildung 6 4 Mit dieser Schaltfl che k nnen Sie sich diese Hinweise erneut anzeigen lassen N Skripthilfe To pe 8 X E 1 von 2 DJ gotoAndPlay Bild Abbildung 6 4 Codehinweise helfen Ihnen Funktionen mit korrekter Syntax zu benutzen e Debug Optionen Hier k nne
90. as Auto 1 hat 35 1 im Tank und 250 km auf dem Tacho Das Auto 2 hat 45 1 im Tank und O km auf dem Tacho Das Auto 2 hat 7 5 l im Tank und 250 km auf dem Tacho Das Auto 2 hat 17 5 1 im Tank und 250 km auf dem Tacho Klassen entwerfen und programmieren Nach dem praktischen Einstieg im ersten Abschnitt werden einige Aspekte der objektorientierten ActionScript Programmierung hier vertieft Zun chst werden die bereits beschriebenen Aspekte von Klassen vertieft und einige weitere erl utert Als N chstes geht es um die Vererbung das hei t die Ableitung von Klassen wobei nur 240 Kapitel 7 ActionScript 2 0 Klassen nderungen und Erg nzungen implementiert werden m ssen Ein interessantes Konzept ist auch die objektorientierte Behandlung von Ausnahmen das hei t Fehler zust nden Schlie lich wird noch beschrieben wie Sie Klassen aus anderen Verzeich nissen einbinden k nnen Klassen und ihre Elemente Die grundlegenden Zutaten f r eine Klasse haben Sie bereits kennen gelernt Eigenschaften Konstruktor und Methoden Diese Elemente und diverse interes sante Abwandlungen davon werden hier noch einmal genau beschrieben gr tenteils wieder anhand des Auto Beispiels Die Klassendeklaration Eine ActionScript Klasse wird stets mit Hilfe der Schreibweise class Klassenname definiert gefolgt von einem Block mit den Klassenelementen Bei der Klasse Auto sieht dies so aus class Auto Klassenelemente
91. asse Color die Sie zum Einf rben von Movieclips verwenden k nnen ben tigt den RGB Farbwertals 32 Bit Integer Sie k nnen ihn hexadezimal angeben was den sofortigen Einsatz von HTML Farbcodes erm glicht beispielsweise ist oxFF9900 orange Alternativ l sst sich ein kompletter Farbwert aber auch aus seinen dezimalen Rot Gr n und Blau Einzel werten berechnen Verwenden Sie dazu den folgenden Ausdruck rotwert lt lt 16 gruenwert lt lt 8 blauwert Das ist praktischer und wird etwas schneller berechnet als die ebenfalls g ltige arithmetische Fassung rotwert 65536 gruenwert 256 blauwert F r die Wertzuweisung an Variablen existieren neben dem einfachen noch eine Reihe von Modifikationsoperatoren die den bisherigen Wert einer Variablen um einen bestimmten Wert ver ndern Betrachten Sie beispielsweise folgende Anwei sung x X 1 Anders als in der Mathematik ergibt dies keinen unaufl sbaren Widerspruch weil der Ausdruck auf der rechten Seite bei einer Wertzuweisung immer zuerst komplett berechnet wird Als neuer Wert von x wird also der um 1 erh hte alte Wert festge legt Einige Beispiele f r Modifikatoren finden Sie zusammen mit der zugeh rigen Lang fassung in Tabelle 6 5 Tabelle 6 5 Modifikationsoperatoren die den Wert von Variablen ver ndern Langfassung Kurzfassung Erl uterung x X 3 xX 3 Variable um den angegebenen Wert erh hen x x 1 x 1 Variable um 1 erh hen ne Unterschied zwischen
92. atenbankverbindung so aus conn new mysqli 127 0 0 1 dbuser geheim musik Die Variable conn ist ein Verbindungsobjekt ber dessen Methoden und Eigen schaften Sie MySQL Datenbankoperationen vornehmen k nnen Nun k nnen Sie die mysgqli Methode query verwenden um SQL Abfragen an die Datenbank zu senden Das folgende Beispiel erstellt einen neuen Eintrag in der Tabelle cds 346 Kapitel 10 Interaktion mit Webserver Anwendungen success conn gt query INSERT INTO cds cd interpret cd titel cd_jagr cd_songs VALUES 1 Ride The Lightning 1984 8 Bei solchen nderungsabfragen liefert die Eigenschaft conn gt affected_rows die Anzahl der ge nderten Datens tze Wenn Sie dagegen mit SELECT eine Auswahlab frage durchf hren erhalten Sie ein Ergebnisobjekt query conn gt query SELECT int_name cd titel FROM interpreten cds WHERE int_nr cd interpret Sie k nnen query benutzen um die erhaltenen Datens tze auszulesen PHP bietet zu diesem Zweck die Methode fetch_row die jeweils den n chsten Datensatz zur ckliefert Dies l sst sich am praktischsten in einer Schleife der folgenden Bauart nutzen echo lt table border 1 gt n echo lt th gt Interpret lt th gt lt th gt CD lt th gt n while list name titel query gt fetch_row echo lt tr gt lt td gt name lt td gt lt td gt titel lt td gt lt tr gt n a lt table gt
93. auten Inhalten des Films befinden in den er geladen wird sogar hinter einer Maske Zum anderen kann er beliebig transformiert skaliert gedreht oder gespiegelt wer den Wenn Sie die zugrunde liegende Instanz zuvor auf der B hne transformiert haben gilt dies auch f r den hineingeladenen Film Abgesehen davon kann die Instanz auch per Bewegungs Tweening skaliert werden so dass ein neu geladener Film in eine beliebige Bewegung versetzt oder sogar mit Hilfe eines Farbeffekts ein gef rbt werden kann I In einem Film den Sie in eine Instanz hineinladen m ssen Sie mit ActionScript Anweisungen sehr vorsichtig sein _root bezieht sich nicht mehr auf den Film in dem die Anweisung urspr nglich stand sondern auf den Hauptfilm in den dieser geladen wurde Auch die anderen Bez ge ndern sich entsprechend Wenn Sie dies verhindern m chten k nnen Sie seit Flash MX 2004 die Eigenschaft _lockroot des entsprechenden Movieclips auf true setzen dies sorgt daf r dass _root nicht neu interpretiert wird Auch Filme die Sie in Movieclip Instanzen hineingeladen haben k nnen Sie bei Bedarf wieder entfernen Dazu wird die Funktion oder Methode unloadMovie ver wendet Als globale Funktion besitzt die Anweisung die folgende Syntax unloadMovie Instanz Die objektorientierte Variante sieht dagegen so aus Instanz unloadMovie Um die zuvor in die Instanz _root box geladene Instanz wieder zu entfernen k n nen Sie eine der beiden fo
94. b mod_perl 1 28 Die Selbstidentifikation der Server Software ber Apache erfahren Sie im n chsten Kapitel einiges e Last Modified Fri 02 Dec 2005 02 24 00 GMT Datum und Uhrzeit der letzten nderung wichtig f r das Caching die Zwischenspeicherung des Dokuments in Browsern und Proxy Servern e ETag 7d500 3737 40e4c740 Eine Art Identit tsstempel des Dokuments e Accept Ranges bytes Der Server gibt bekannt dass er Dateien nicht nur am St ck sondern auch byteweise liefern kann Dies nutzt beispielsweise der Acrobat Reader f r lange PDF Dokumente e Content Length 14135 L nge der gelieferten Datei in Byte Webformulare im berblick 285 e Connection keep alive Der Server best tigt die Anforderung einer bleibenden Verbindung e Content Type text html Datentyp des gelieferten Dokuments hier handelt es sich um ein HTML Dokument Selbstverst ndlich l uft diese Kommunikation normalerweise vollst ndig im Hin tergrund ab Es ist aber eine unschlagbare St rke der meisten Internet Kommunika tionsprotokolle dass sie wie HTTP f r Menschen lesbaren Klartext verwenden denn dadurch k nnen Programmierer und Administratoren Schwierigkeiten leicht erkennen Wenn die GET Anfrage Formulardaten transportieren soll wird an die eigentliche URL ein so genannter Query String angeh ngt Hinter einem Fragezeichen stehen mehrere durch amp Zeichen oder Semikola getrennte Name Wert Paare Leerzeichen in den Werten
95. basics O REILLY Sascha Kersken 2 AUFLAGE Praxiswissen Flash 8 Sascha Kersken O REILLY Beijing Cambridge Farnham K ln Paris Sebastopol Taipei Tokyo Die Informationen in diesem Buch wurden mit gr ter Sorgfalt erarbeitet Dennoch k nnen Fehler nicht vollst ndig ausgeschlossen werden Verlag Autoren und bersetzer bernehmen keine juristische Verantwortung oder irgendeine Haftung f r eventuell verbliebene Fehler und deren Folgen Alle Warennamen werden ohne Gew hrleistung der freien Verwendbarkeit benutzt und sind m glicherweise eingetragene Warenzeichen Der Verlag richtet sich im wesentlichen nach den Schreibweisen der Hersteller Das Werk einschlie lich aller seiner Teile ist urheberrechtlich gesch tzt Alle Rechte vorbehalten einschlie lich der Vervielf ltigung bersetzung Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen Kommentare und Fragen k nnen Sie gerne an uns richten O Reilly Verlag Balthasarstr 81 50670 K ln Tel 0221 9731600 Fax 0221 9731608 E Mail kommentar oreilly de Copyright 2006 by O Reilly Verlag GmbH amp Co KG 1 Auflage 2005 2 Auflage 2006 Die Darstellung einer Energiesparlampe im Zusammenhang mit dem Thema Flash ist ein Warenzeichen des O Reilly Verlags Flash Professional 8 Flash Basic 8 und Dreamweaver 8 sind in den USA und in anderen L ndern Warenzeichen oder registrierte Warenzeichen vo
96. beliebig Erl uterungen Breite in Pixeln H he in Pixeln Breiten Skalierungsfaktor anfangs 100 H hen Skalierungsfaktor anfangs 100 horizontale Position vertikale Position Rotationswinkel Movieclip anzeigen ausblenden Transparenzgrad 0 unsichtbar 100 deckend X Position des Mauszeigers relativ zum Registrierpunkt des Movieclips nur lesbar Y Position des Mauszeigers 216 Kapitel 6 Interaktivit t durch ActionScript Wenn Sie die Gr e der Movieclip Instanz clip halbieren m chten k nnen Sie ihre Eigenschaften xscale und _yscale jeweils auf 50 setzen clip1 xscale 50 clip1 yscale 50 Das folgende Beispiel erh ht die Breite der Movieclip Instanz clip2 um 10 Pixel clip2 width 10 Wenn Sie den folgenden Code einer Schaltfl chen Instanz zuweisen erhalten Sie einen Umschalter f r den Movieclip _root clip3 Jeder Klick blendet ihn abwech selnd ein beziehungsweise aus on release if _root clip3 visible _root clip3 visible false else _root clip3 visible true den Sie den Film eigenschaften fla Er erm glicht Ihnen die dynami sche nderung zahlreicher Eigenschaften eines Movieclips ber Schaltfl chen Er erl utert nebenbei wie Sie Dauerfeuer Schaltfl chen erstellen k nnen die nicht nur auf einen Klick reagieren son dern beim Gedr ckthalten der Maustaste weiterarbeiten u Im bereits erw hnten Verzeichnis actionscript auf der CD ROM fin
97. bolen und deren Platzierung auf der B hne bereits erledigt Das Konzept Das Kernelement der Anwendung ist ein Movieclip Symbol namens karte Es ent h lt das Deckblatt und die sechs unterschiedlichen Kartenbilder des Spiels in auf einander folgenden Frames das achte Frame ist ein leeres Schl sselbild das angezeigt wird wenn das entsprechende Kartenpaar abger umt wurde ber den ersten sieben Frames befindet sich eine transparente Schaltfl che die dem Auf 5 Der Name unter dem das Spiel bekannt ist die englische Bezeichnung f r Arbeitsspeicher darf aus Copyright Gr nden nicht genannt werden dabei w re es hervorragende Gratiswerbung f r das Origi nal 224 Kapitel 6 Interaktivit t durch ActionScript decken der Karte dient Sie ruft die im Hauptfilm definierte Funktion klick auf wobei sie mittels this einen Verweis auf die aktuelle Instanz von karte bermittelt damit die Funktion wei welche Karte angeklickt wurde Auf der B hne befinden sich insgesamt zw lf Instanzen des Symbols karte sie tra gen die Instanznamen karteO bis kartell Das Hauptskript muss zun chst einmal daf r sorgen dass die sechs Kartenpaare zuf llig auf diese zw lf Positionen verteilt werden Zu diesem Zweck werden zwei Arrays definiert Eines enth lt zw lf unterschiedliche Bezeichnungen 1a 1b 2a 2b und so weiter damit sichergestellt ist dass jedes Kartenpaar nur einmal vorhanden ist Im zweiten Array befinden
98. br gt lt input type text name impr size 30 gt lt br gt lt br gt lt b gt Wie haben Sie von uns erfahren lt b gt lt br gt lt input type radio name kont value pwrb gt Zeitschriftenwerbung lt br gt lt input type radio name kont value bann gt Web Werbebanner lt br gt lt input type radio name kont value such gt Suchmaschine lt br gt value news gt value shop gt value frum gt 290 Kapitel 9 Formulare erstellen Beispiel 9 1 Ein vollst ndiges HTML Formularbeispiel Fortsetzung lt input type radio name kont value empf gt Pers ouml nliche Empfehlung lt br gt lt br gt lt b gt Ihre E Mail Adresse f amp uuml r das Gewinnspiel lt b gt lt br gt lt input type text name mail gt lt br gt wird garantiert nur f amp uuml r die Verlosung verwendet lt br gt lt br gt lt input type submit value Abschicken gt lt input type reset value Zur uuml cksetzen gt lt form gt lt body gt lt html gt Speichern Sie das Formular als Dokument mit der Endung html ab ffnen Sie es anschlie end in Ihrem Browser Das Ergebnis sollte so aussehen wie in Abbildung 9 1 FlashRock Music Shop Kundenumfrage Microsoft Internet Explorer 10 x Datei Bearbeiten Ansicht Favoriten Extras 2 ar Qaa x A AO Suchen g Favoriten Ol Ze IE Adresse _ http 127 0 0 1 form1 html 2 E wechseinzu uns
99. ch auf true gesetzt zudem wird der Paare Z hler paare um 1 erh ht F r das automatische Schlie en ist ein Steuerclip zust ndig ber den Event Hand ler onClipEvent enterFrame berpr ft er regelm ig einmal pro Frame ob zwei Karten ge ffnet sind und wenn dies der Fall ist ob die durch die Variable warten definierte Wartezeit bereits abgelaufen ist Die eigentliche Arbeit des Schlie ens beziehungsweise Abr umens erledigt allerdings die Funktion schliessen Diese wird brigens auch dann aktiviert wenn der Benutzer innerhalb der Wartezeit eine weitere Karte anklickt Praxisbeispiel Navigation interaktive Demo und Spiel 225 Die Skripte Ihre Aufgabe f r dieses Praxisbeispiel besteht im Verfassen mehrerer ActionScript Bl cke Wechseln Sie zun chst in das Symbol karte Weisen Sie dem Schl sselbild der Ebene actions die folgende Anweisung zu stop Dies sorgt nat rlich daf r dass die Karten Instanzen das Deckblatt anzeigen anstatt automatisch in einer Schleife abgespielt zu werden Als N chstes ben tigt auch die transparente Schaltfl che auf der Ebene button ein Skript on release _root klick this Wechseln Sie nun in den Hauptfilm Hier werden auf der Ebene actions mehrere Bildskripte erstellt W hlen Sie zun chst Bild 2 aus und tragen Sie das folgende umfangreiche Skript in die Aktionen Palette ein Kartenvorrat und zugeh rige Bilder im Symbol karte var kartenstapel new Ar
100. chen 0 bis 255 an xoo bis xFF sind die entsprechenden Hexadezimalcodes Die Booleschen Literale true und false sind das berpr fbare Ergebnis logischer Operationen Der Vergleich 3 lt 5 hat den Wert true w hrend 3 gt 5 eindeutig false ist Wenn Sie m chten k nnen Sie diese Werte aber auch explizit benutzen und beispielsweise in Variablen speichern 194 Kapitel 6 Interaktivit t durch ActionScript Variablen In der Vorzeit der Computertechnik mussten sich Programmierer selbst mit der Ablage ihrer Nutzdaten im Arbeitsspeicher abm hen Die dazu eingesetzten nume rischen Speicheradressen gibt es mit gewissen technischen Verbesserungen zum Beispiel virtuelle Adressierung mit Auslagerung auf die Festplatte noch heute Allerdings findet diese Form der Speicherzuteilung fast immer hinter den Kulissen statt Dies ist nicht zuletzt das Verdienst der Variablen die in beinahe jeder Pro grammiersprache zur Verf gung stehen Dies nur vorweg falls Sie finden dass Variablen schwierig zu verstehen sind denken Sie daran dass sie eine enorme Arbeitserleichterung darstellen Sie brauchen sich nicht mehr zu merken wo Sie etwas gespeichert haben sondern nur noch unter welchem Namen es abgelegt wurde Eine Variable ist ein Bereich im Arbeitsspeicher den Sie durch einen selbst gew hlten Bezeichner kennzeichnen k nnen Durch den Operator wird einer Variablen ein Wert zugewiesen Im folgenden Beispiel erh lt eine Variable namens
101. chnet Unter Beschriftungstyp k nnen Sie die Art der jeweiligen Markierung einstellen e Name erstellt eine Bildbezeichnung wie sie f r die hier verwendeten Sprungbe fehle ben tigt wird Das Symbol in der Zeitleiste ist ein rotes F hnchen e Kommentar dient lediglich Ihrer eigenen Orientierung in der Zeitleiste als Symbol dienen gr ne Kommentarzeichen e Anker k nnen als HTML Sprungziele exportiert werden ihr Symbol ist ein orangefarbener Anker Genau wie f r Bildaktionen oder Sounds sollten Sie auch f r Bildmarkierungen eine eigene Ebene verwenden In Abbildung 6 8 sehen Sie Bildmarkierungen in der Zeit leiste und in der Eigenschaftenleiste nfang ol IgAnker olgmitte ol Kommentar pende o J buttons LA animation alol e TI hoss oos a i Y Eigenschaften Filter Parameter BE I Bild Tween Keine 7 Sound Aus 7 2 anfang Effekt keine z Bearb 7 Beschriftungstyp Sync Ereignis z wiederholen zIj 1 IX Name DE Kein Sound ausgew hlt a Abbildung 6 8 Bildmarkierungen in der Zeitleiste und in der Eigenschaftenleiste Wenn Sie einen Sprung zu einem Bild mit einer Markierung durchf hren m chten m ssen Sie die Bezeichnung in Anf hrungszeichen setzen Das folgende Beispiel springt zu dem Frame mit der Markierung menue gotoAndPlay menue Wenn Sie Ihren Film bersichtlicher gestalten m chten k nnen Sie Szenen verwen den
102. cript Grundelemente 185 brigens k nnen Sie einer Schaltfl che auch ganz leicht einen Klick Sound zuwei sen Aktivieren Sie das Schl sselbild im Bild Gedr ckt bzw erstellen Sie zun chst eines W hlen Sie nun in der Eigenschaftenleiste den passenden Sound aus und stellen Sie die Option Sync auf Ereignis Soll einer der Zust nde animiert sein so funktioniert dies nicht direkt Ziehen Sie stattdessen einen Movieclip mit der gew nschten Animation in das passende Bild des Schaltfl chen Symbols Wenn Sie eine Schaltfl che auf die B hne ziehen k nnen Sie die neue Instanz ankli cken und ihr in der Aktionen Palette ein Skript nach folgendem Schema zuweisen on Button Ereignis Anweisung en Als Button Ereignis wird am h ufigsten release eingesetzt Es tritt ein nachdem die Maustaste auf dem Button gedr ckt und wieder losgelassen wurde Dies entspricht dem Verhalten das die meisten Benutzer von einem Button erwarten Das folgende Beispiel springt zum Bild Nummer 50 sobald die Maustaste auf dem Button losge lassen wird on release gotoAndPlay 50 Es ist brigens kein Problem auf mehrere Ereignisse mit denselben Anweisungen zu reagieren Das folgende Beispiel reagiert sowohl auf das Loslassen der Maustaste als auch auf das Dr cken der Leertaste on release keyPress lt Space gt gotoAndPlay weiter Tabelle 6 2 zeigt s mtliche m glichen Schaltfl chen Ereignisse im berblick Tabelle
103. cript ergibt sich erst aus der Tatsache dass jeder Movieclip eine unabh ngige Zeitleiste besitzt Auf diese Weise kann ein einzelner Film beliebig viele unabh ngig handelnde Subjekte enthalten Jede separate Zeitleiste also jeder Hauptfilm und jedes Movieclip Symbol kann dabei Bildaktionen enthalten Dar ber hinaus k nnen die unterschiedlichen Zeitleisten sich aber auch gegenseitig steuern dies ist wahrscheinlich die interessanteste F hig keit von ActionScript Erstellen Sie zur Einstimmung in die Thematik folgendes kleine Beispielszenario 1 Erzeugen Sie zwei Schaltfl chen Symbole mit den Beschriftungen Stop und Weiter 2 Erstellen Sie ein neues Movieclip Symbol mit der Bezeichnung quer Richten Sie innerhalb dieses Symbols eine einfache Animation ein bei der sich ein Objekt seitlich hin und her bewegt Legen Sie die beiden Schaltfl chen auf eine zweite Ebene Weisen Sie dem Button Stop folgendes Skript zu on release stop Die Schaltfl che Weiter erh lt folgenden ActionScript Code on release play 3 Erzeugen Sie auf der B hne des Hauptfilms eine weitere Animationssequenz in der sich ein Objekt von oben nach unten und wieder zur ck bewegt 4 F gen Sie eine neue Ebene hinzu Ziehen Sie den Movieclip quer auf die B hne 5 Ziehen Sie die beiden Schaltfl chen auch in den Hauptfilm nat rlich so dass sie den entsprechenden Schaltfl chen innerhalb der Movieclip Instanz nicht in die Que
104. d var a new Array Wenn Sie nun an bestimmten Positionen dieses Arrays Werte speichern m chten k nnen Sie dies durch eine normale Wertzuweisung tun der Index steht immer in eckigen Klammern a o 27 al 45 Daneben besteht auch die M glichkeit ein Array von vornherein mit Werten zu belegen var a new Array Flash Dreamweaver Fireworks Alternativ gibt es die folgende Kurzfassung var a Flash Dreamweaver Fireworks Wenn Sie m chten k nnen Sie statt der Zahlen auch Schl ssel im String Format als Indizes verwenden Dies erm glicht die Verwaltung datenbank hnlicher Strukturen in Arrays Wenn Sie einzelne Elemente setzen m chten sieht dies genauso aus wie bei numerischen Indizes var person new Array person vorname Klaus person nachname Schmitz person geburtsdatum 06 07 1965 Die Syntax f r eine Deklaration mit gleichzeitiger Wertzuweisung funktioniert mit solchen Schl sseln folgenderma en var person vorname Klaus nachname Schmitz geburtsdatum 06 07 1965 Das Sch nste an Arrays ist aber dass sie als Objekte einige eingebaute Funktionen so genannte Methoden besitzen mit denen Sie gezielt Elemente hinzuf gen ent fernen oder sortieren k nnen Tabelle 6 3 zeigt die wichtigsten Array Methoden im berblick ActionScript Grundelemente 197 Tabelle 6 3 Die Methoden der Klasse Array Methode Bedeutung Beispiel push Wert
105. d Erg nzungen die aus dem Auto einen LKW machen Sogar private Eigenschaften und Methoden der Elternklasse stehen innerhalb der abgeleiteten Klasse zur Verf gung Dies ist eine Besonderheit von ActionScript andere objektorientierte Sprachen wie etwa Java vererben private Elemente nicht Daf r bieten diese neben public und private eine dritte Geheimhaltungsstufe namens protected die genau daf r zust ndig ist Klassen entwerfen und programmieren 247 Bevor es mit der Theorie weitergeht hier das vollst ndige Listing der Klasse LKW die Sie in einer Datei namens LKW as im selben Verzeichnis wie Auto as speichern m ssen class LKW extends Auto Neue Eigenschaften private var maxLadung Number private var ladung Number Konstruktor public function LKW m Number v Number 1 Number Zun chst ein Auto mit der gew nschten max Tankf llung und Verbrauch erstellen super m v Ladekapazit t und aktuelle Ladung einstellen this maxLadung 1 this ladung 0 Neue Methoden public function beladen 1 Number Nur hinzuladen falls Kapazit t gen gt if this ladung 1 lt maxLadung this ladung 1 public function entladen 1 Number Nur entladen falls so viel vorhanden if this ladung 1 gt 0 this ladung 1 Neue Getter Methoden public function getLadung Number return this ladung public function getMaxLadung Number
106. d zum Beispiel multipart forn data benutzt POST besitzt noch weitere Vorteile Zum einen k nnen die Formulardaten beliebig umfangreich sein Wenn Sie in Ihren Formularen mehrzeilige Textfelder f r l ngere Kommentare einsetzen m chten ist GET nicht brauchbar weil f r URLs eine H chst 286 Kapitel 9 Formulare erstellen l nge von 2000 Zeichen gilt Abgesehen davon garantiert POST dass die Anfrage auf jeden Fall vom Server verarbeitet wird GET Anfragen k nnen dagegen auf Proxy Ser vern oder im Browser Cache zwischengespeichert werden so dass Sie m glicherweise das erwartete Frgebnis erhalten ohne dass der Server die Daten erneut empfangen hat Bei Transaktionen wie etwa einer Online Bestellung w re dies sehr rgerlich Wozu ist GET aber gut wenn POST so viele Vorteile besitzt Der besondere Vorteil von GET besteht eben darin dass der Query String ein Teil der URL ist Angenom men Sie suchen bei Google nach flash 8 Nachdem Sie auf Suche geklickt haben sehen Sie im Browser folgende Adresse http www google de search sourceid nav client amp hl de amp ie UTF 8 amp 0oe UTF 8 amp q 22flash 8 22 Diese URL kann nun zum Beispiel in die Lesezeichen Favoritensammlung Ihres Browsers aufgenommen werden Auf diese Weise haben Sie auf Knopfdruck stets das aktuelle Suchergebnis zur Hand HTML Formulare HTML Formulare bilden seit Jahren das Kernst ck von Webanwendungen Such maschinen E Commerce Anbieter Foren Communities
107. d_ beziehungsweise int_ verwendet werden Dies ist auch in der Praxis empfehlens wert 324 Kapitel 10 Interaktion mit Webserver Anwendungen F r den Zugriff durch Webanwendungen sollten Sie zu guter Letzt einen separaten MySQL Benutzer erzeugen der nur auf die jeweilige Einzeldatenbank zugreifen darf Das folgende Beispiel erzeugt im Kommandozeilen Client einen Benutzer namens dbuser der in Skripten auf demselben Rechner mit dem schlechten Pass wort geheim auf die Datenbank musik zugreifen darf mysql gt CREATE USER dbuser localhost mysql gt GRANT ALL PRIVILEGES ON musik TO dbuser localhost gt IDENTIFIED BY geheim Falls Sie noch MySQL 4 verwenden m ssen Sie die CREATE USER Zeile weglassen PHP installieren Die Programmiersprache PHP wird seit 1995 von Rasmus Lerdorf entwickelt Anfangs handelte es sich um eine Art Makrosammlung f r Webserver Aufgaben Personal Homepage Tools durch die Zusammenarbeit zahlreicher Entwickler hat sich das Projekt zu einer ausgereiften Server Anwendungssprache mit unz hligen eingebauten und auch von Drittanbietern bereitgestellten Funktionen entwickelt Sie finden die aktuelle Version 5 1 f r UNIX und Windows auf der beiliegenden CD ROM das aktuelle Release k nnen Sie jeweils unter http www php net herun terladen In diesem Unterabschnitt wird erl utert wie Sie PHP 5 unter UNIX und Windows installieren und f r die Zusammenarbeit mit Apache 2 konfigurieren k nnen Beacht
108. dahinter zu verstehen W Falls Sie noch keine oder sehr wenig Programmiererfahrung haben Die ActionScript Syntax Jede Programmiersprache besitzt Regeln daf r wie Anweisungen geschrieben wer den m ssen Damit sie ohne bertriebenen Aufwand erfolgreich von einem Compu ter verarbeitet werden kann sind diese Regeln blicherweise sehr streng und bieten nur wenige Alternativen ganz im Gegensatz zu der Variationsvielfalt und der hohen Fehlertoleranz die die nat rlichen Sprachen der Menschen erlauben Die grundlegende Syntax von ActionScript stimmt durch die ECMA Zertifizierung mit derjenigen von JavaScript berein Dies hat wiederum zur Folge dass viele Ideen dieser Syntax aus der Tradition der verbreiteten Programmiersprache C stam men Wenn Sie sich die folgenden einfachen Syntaxregeln merken sollten Sie mit ActionScript ohne Probleme zurechtkommen Anweisungen Ein einzelner Arbeitsschritt in einem Skript wird als Anweisung bezeichnet Jede Anweisung steht in einer eigenen Zeile und endet mit einem Semikolon Beispiele gotoAndPlay 25 myMovieClip stop Anweisungen enthalten oftmals Funktionsaufrufe Dabei kann es sich sowohl um eingebaute als auch um selbst geschriebene Funktionen handeln Letztere werden weiter unten behandelt In beiden F llen wird die Funktion einfach durch ihren Namen aufgerufen darauf folgen stets runde Klammern f r die Argumente d h die n heren Bestimmungen der Funktion Das gilt auch dann wen
109. de Wandelt alle strftime Platzhalter im String um param f strftime kompatibler Format String param lang ISO Sprachk rzel en de usw public function getInternationalFormat f String lang String String var out String Den String zeichenweise durchsuchen for var i Number 0 i lt f length i Prozentzeichen gefunden if f charAt i Prozentzeichen plus n chstes ersetzen out this getInternationalFormatPart f substring i i 2 lang i else Zeichen einfach hinzuf gen falls es kein ist out f charAt i return out getFormat Methode 262 Kapitel 7 ActionScript 2 0 Klassen Wandelt alle strftime Platzhalter im String um Englisch param f strftime kompatibler Format String public function getFormat f String String return getInternationalFormat f en Hier ein Beispiel f r die Verwendung dieser Klasse im Praxisbeispiel von Kapitel 10 wird sie noch einmal konkreter eingesetzt var dt CustomDate new CustomDate trace dt getInternationallFormat Heute ist A der d B Y H M Uhr und S Sekunden der j Tag im Jahr de Eine Ausgabe dieses Codes sieht zum Beispiel so aus Heute ist Mittwoch der 30 November 2005 22 07 Uhr und 16 Sekunden der 334 Tag im Jahr Praxisbeispiel Eine Komfort Datumsklasse 263 In diesem Kapitel KAPITEL 8 Web inkemitge
110. de private function verbrauchProStrecke km Number Number ffentliche Methoden public function fahren km Number Void Fehler erzeugen falls das Benzin nicht reicht if this tankFuellung lt this verbrauchProStrecke km throw new KraftstoffMangelException else kmStand km tankFuellung this verbrauchProStrecke km return km this verbrauch 100 public function tanken 1 Number Void Fehler erzeugen falls der Tank zu voll w rde if this tankFuellung 1 gt this maxTankFuellung throw new Error So viel passt nicht in den Tank else tankFuellung 1 Accessor Methoden nur Getter public function getKmStand Number return this kmStand public function getTankFuellung Number return this tankFuellung public function getMaxTankFuellung Number return this maxTankFuellung public function getVerbrauch Number Klassen entwerfen und programmieren 253 return this verbrauch Hier ein einfaches Verwendungsbeispiel das beide Methoden aufruft und die m g licherweise auftretenden Ausnahmen abf ngt var auto Auto new Auto 50 10 200 km fahren falls das Benzin reicht try auto fahren 200 catch e KraftstoffMangelException trace e message 30 l tanken falls sie in den Tank passen try auto tanken 30 catch e Error trace e message Wichtiger als bei diese
111. den vendor if isset _GET vendor amp amp _GET vendor vendor GET vendor Diese Schreibweise hat den Vorteil dass sie mit unterschiedlichen PHP Versionen gleicherma en funktioniert In lteren PHP Versionen sind undefinierte Variablen n mlich leer variable ergibt true Neuere Versionen reagieren dagegen auf isset Falls Ihr Hoster also eine ltere PHP4 Version benutzen sollte brauchen Sie Ihre Skripte daf r nicht umzuschreiben Wenn Sie viele Variablen auslesen m ssen kann es ziemlich l stig sein diese Zeilen f r jede einzelne Variable zu schreiben Deshalb lohnt es sich f r diese Aufgabe fol gende Funktion zu definieren function cgiParam field default Nariable auf Standardwert setzen var default HTTP Methode ermitteln meth _SERVER REQUEST_METHOD if meth GET if isset GET field amp amp _GET field var GET field elseif meth POST if isset POST field amp amp _POST field var POST field Variable zur ckgeben return var PHP Anwendungen und Flash Filme 331 Wie Sie erkennen k nnen sehen Funktionen in PHP exakt genauso aus wie in ActionScript Die Funktion cgiParam nimmt zwei Werte entgegen den Namen des Formularfeldes beziehungsweise der Flash Variablen die Sie auslesen m chten field sowie den Standardwert defaul
112. den Code benutzen loadMovieNum popup swf 1 Der geladene Film wird an der linken oberen Ecke von Stufe 0 ausgerichtet und nicht skaliert falls sein Inhalt also gr er ist als die B hne des Grundfilms auf Stufe 0 wird er rechts oder unten abgeschnitten geschlossene Hintergrundfl che berall wo keine Inhalte vorhanden sind erscheint er transparent Beachten Sie au erdem dass Schaltfl chen auf weiter unten liegenden Stufen auch dann noch funktionieren wenn sie nicht sichtbar sind das hei t berdeckt werden u Ein Film der auf eine h here Stufe geladen wird besitzt keine Wenn Sie einen Film auf eine Stufe laden auf der sich bereits einer befindet wird er durch den neuen Film ersetzt Wie Sie bereits erfahren haben verh lt es sich beim Laden auf Stufe 0 anders Hier werden die Filme aller Stufen geschlossen weil Stufe 0 alle anderen Stufen steuert Sie k nnen Filme auf h heren Stufen auch wieder entladen wenn sie nicht mehr ben tigt werden Dazu wird die Funktion unloadMovieNum Stufe eingesetzt Wenn Sie zum Beispiel den Film auf Stufe 3 loswerden m chten k nnen Sie folgende Anweisung verwenden unloadMovieNum 3 AE Es ist technisch ohne weiteres m glich den Film auf Stufe 0 zu entla AN den Dann ist allerdings berhaupt kein Film mehr vorhanden so dass der Flash Player unwiderruflich verwaist berpr fen Sie also insbesondere Variablen die Sie als Stufennummer f r unloadMovie
113. die Schaltfl che Neues Spiel Weisen Sie ihr folgende Anweisungen zu versuche Versuche ben tigt n on release gotoAndStop start Wechseln Sie nun wieder in das Start Schl sselbild der Ebene karten Ziehen Sie das Symbol steuerclip auf oder besser neben die B hne Klicken Sie es an und verse hen Sie es mit dem folgenden Code onClipEvent enterframe muss gerade gewartet werden if _root offene 2 _root warten eine Sekunde vorbei if _root warten gt 12 _root schliessen 228 Kapitel 6 Interaktivit t durch ActionScript In diesem Kapitel KAPITEL 7 Objektorientierte Programmie ung mit ns ActionScript 2 0 Klassen Klassen entwerfen und program mieren e Praxisbeispiel Eine Komfort Datumsklasse Die Ordnung und Verkn pfung der Ideen ist dieselbe wie die Ordnung und Verkn pfung der Dinge Baruch de Spinoza Die wichtigste Neuerung der ActionScript Version 2 0 ist die Objektorientierung mit echten Klassen Konzept und Umsetzung wurden im Gro en und Ganzen von der Programmiersprache Java inspiriert In diesem Kapitel erfahren Sie zun chst anhand eines praktischen Beispiels wie Objektorientierung funktioniert und wof r sie n tzlich ist vor allem im direkten Vergleich mit dem herk mmlichen Program mieransatz Anschlie end wird erl utert wie Sie ActionScript Klassen schreiben und einsetzen k nnen Zu guter Letzt gibt es w
114. e e Variablen Eine Variable ist ein benannter Speicherplatz Wenn Sie sie in einen Ausdruck einsetzen wird der aktuell in ihr gespeicherte Wert zur Berechnung verwendet e Operatoren Hier handelt es sich um Verkn pfungsvorschriften mit denen Literale und Variablen zu komplexeren Ausdr cken verbunden werden e Funktionsaufrufe Da auch viele Funktionen ein Ergebnis liefern k nnen Sie sogar diese in Ausdr cken unterbringen ActionScript stellt eine praktische Funktion zum Testen von Ausdr cken zur Verf gung trace Ausdruck Die Ausgabe des ausgewerteten Ausdrucks erfolgt in das so genannte Ausgabefenster Fenster gt Ausgabe oder F2 trace ist u erst praktisch f r die Fehlersuche in Skripten Damit Sie vor der endg ltigen Ver ffentlichung nicht m hevoll alle trace Anweisungen aus Ihren Skripten entfernen m ssen k nnen Sie beim Exportieren die Option Trace Aktionen bergehen aktivie ren siehe Kapitel 5 Literale Wenn Funktionen Argumente ben tigen erwarten sie zun chst einfache nicht wei ter zu berechnende Werte Beispielsweise wird ein Sprung zu Frame Nummer 3 mit folgender Anweisung durchgef hrt gotoAndPlay 3 Die 3 ist hier ein numerisches Literal also eine Zahl die nicht mehr weiter ausge wertet werden muss Allein stehende Literale sind die einfachsten m glichen Ausdr cke ActionScript kennt folgende Arten von Literalen e Numerische Literale Zahlen e String L
115. e Konfigurationsdatei namens httpd conf die sich im Verzeichnis conf Ihrer Apache Installation befindet Sie k nnen sie mit einem belie bigen Texteditor ffnen und bearbeiten Nach jeder nderung m ssen Sie Apache neu starten siehe unten Je nach installierten Modulen gibt es ber 400 verschiedene Konfigurationsanwei sungen Direktiven die meisten von ihnen sind allerdings f r Spezialaufgaben zust ndig und k nnen in der bereits erw hnten Online Dokumentation oder in Fachb chern nachgeschlagen werden Erfreulicherweise werden bei der Installation fast alle Voreinstellungen korrekt vorgenommen Einige wichtige Direktiven sollten Sie aber trotzdem kontrollieren e ServerName ist der Name des Webservers die Bedeutung dieser Einstellung wurde bereits weiter oben im Rahmen der Installation unter Windows erl u tert Hier ein Beispiel ServerName www test local e Listen gibt die Netzwerkadresse und den TCP Port f r den Server an Bei einem Standard Webserver wird einfach Port 80 ohne Adresse angegeben 316 Kapitel 10 Interaktion mit Webserver Anwendungen damit er an Port 80 aller Netzwerkkarten und verbindungen auf Anfragen lauscht Der entsprechende Konfigurationseintrag sieht so aus Listen 80 Wenn Apache zus tzliche Aufgaben erf llt beispielsweise als Proxy Server oder als sicherer HTTPS Server ben tigen Sie daf r weitere Listen Zeilen e ServerRoot gibt das Apache Stammverzeichnis an unter dem sich Verzeich
116. e angegebene Anzahl von Bits nach links Dies entspricht im Grunde einer mehrfachen Mul tiplikation mit 2 Beispielsweise ergibt 45 lt lt 3 den Wert 360 entspricht also der Operation 45 8 Das Zeichen wird unter Windows mit Alt Gr lt erzeugt auf dem Mac mit ALT 7 Genaue Details dar ber wie Daten im Computer gespeichert werden w rden hier zu weit f hren Sie finden sie zusammen mit vielen anderen IT Informationen unter http www galileocomputing de open book kit dies ist die Online Version meines Buches Kompendium der Informationstechnik 202 Kapitel 6 Interaktivit t durch ActionScript e Entsprechend erwirkt die Bitverschiebung nach rechts gt gt dass der Wert ent sprechend oft durch 2 geteilt wird wobei die Bits nach rechts einfach ver schwinden 45 gt gt 2 ergibt also beispielsweise 11 e Eine Variante der Verschiebung nach rechts gt gt gt f llt die freien Stellen mit Nullen auf Der Unterschied macht sich schnell bei negativen Zahlen bemerk bar 45 gt gt gt 2 ergibt 1073741812 w hrend 45 gt gt 2 das Ergebnis 12 hat Nun fragen Sie wahrscheinlich nach dem praktischen Nutzen der Bit Operatoren Sie werden sehr h ufig in der Kryptographie Ver und Entschl sselung digitale Sig natur und so weiter angewendet Bekannte Krypto Verfahren wie MD5 oder 3DES basieren unter anderem auf solchen Operationen Hier eine Flash typischere Anwendung Die weiter unten vorgestellte Kl
117. e jeweils tun bevor Sie eine Textbox aufziehen die nachtr gliche nderung ist immer ein wenig l stig In Abbildung 9 2 sehen Sie die Eigenschaftenleiste mit den m glichen Optionen f r dynamischen Text Viele von ihnen entsprechen den bereits besprochenen Einstel lungen f r statischen Text hier werden lediglich die Unterschiede erw hnt i Y Eigenschaften Filter Parameter Dynamischer Text z Verdana z 18 Mi P BI E Textwerkzeug ay fo o H As Normal 7 Anti Aliasing f r Lesbarkeit 7 Automatisch unterschneiden a Einzeiig ao B var Einbetten k3 Ziel z A I a Q ji Abbildung 9 2 Einstellungen f r dynamischen Text in der Eigenschaftenleiste Links oben unter dem Texttyp k nnen Sie dem Textfeld einen Instanznamen zuweisen Damit k nnen viele der in Kapitel 6 besprochenen Instanzmethoden und eigenschaften auch bei Textfeldern benutzt werden Daneben gibt es spezielle ActionScript Konstrukte die nur f r Textfelder verf gbar sind einige von ihnen werden weiter unten in diesem Abschnitt behandelt Die wichtigsten Sonderfunktionen finden Sie im unteren Teil der Eigenschaften leiste neben den Einstellungen f r Position und Gr e Zun chst einmal k nnen Sie sich per Pull down Men entscheiden ob das Feld Einzeilig oder Mehrzeilig sein soll die spezielle dritte Option Mehrzeilig kein Umbruch ist geeignet wenn Sie Zei lenumbr che selbst setzen m chten Die daneben l
118. e werden automatisch umgewandelt var zahl var wert T3 Die Zahl ist zahl Hier hat wert den Inhalt Die Zahl ist 7 Die n chste Gruppe sind die Vergleichsoperatoren Sie vergleichen den Wert von Ausdr cken miteinander und liefern true oder false Tabelle 6 4 zeigt die Ver gleichsoperatoren mit Beispielen Tabelle 6 4 Die ActionScript Vergleichsoperatoren im berblick Operator Bedeutung Beispiele Gleichheit 2 3ergibt false 2 2ergibt true Strikte Gleichheit Datentyp 2 2ergibttrue muss bereinstimmen 2 2 ergibt false 2 3 ergibt false 200 Kapitel 6 Interaktivit t durch ActionScript Tabelle 6 4 Die ActionScript Vergleichsoperatoren im berblick Fortsetzung Operator Bedeutung Beispiele Ungleichheit 2 3ergibt true 2 2ergibt false Strikte Ungleichheit es gen gt wenn die Daten typen verschieden sind 2ergibt false l 2 ergibt true gt 2ergibt true 2 2 2 3ergibt true lt kleiner als 2 lt 3ergibt true 2 lt 2ergibt false gt gr er als 2 gt 3ergibt false 3 gt 2ergibt true lt kleiner oder gleich 2 lt 3 ergibt true 2 lt 2ergibt true 3 lt 2ergibt false gt gr er oder gleich 2 gt 3 ergibt false 2 3 gt 2ergibt true Vergleichsoperatoren funktionieren brigens auch mit Strings Hier gilt dass ein String kleiner als ein anderer ist wenn das erste unterschiedliche Zeichen we
119. e zur ck Im Zusammenhang mit der Zeitleistensteuerung steht noch eine andere Funktion zur Verf gung Sie finden sie auch im ActionScript Auswahlmen unter Globale Funktionen Zeitleistensteuerung stopAllSounds Diese einfache Anweisung beendet sofort das Abspielen s mtlicher Sounds Sie ist im Zusammenhang mit der Filmsteuerung sinnvoll weil unterschiedliche Szenen Abschnitte oder Standbilder manchmal mit verschiedener Hintergrundmusik oder gesprochenen Beschreibungen ausgestattet sind Variablen Ausdr cke und Operationen Programmierung w re undenkbar wenn Programmiersprachen nicht in der Lage w ren komplexe Ausdr cke zu berechnen Im Grunde macht diese F higkeit das Schreiben von Programmen zur angewandten Mathematik Auch hier m ssen Sie sich mit der Formulierung von Rechenausdr cken besch ftigen Allerdings haben Sie es leichter als ein Mathematiker weil Sie die Ausdr cke in beliebig komplexer Form hinschreiben und ihre Vereinfachung dem Computer berlassen k nnen eines konkreten Wertes erwartet wird kann stattdessen auch ein beliebig komplexer Ausdruck stehen solange er einen Wert des geforderten Typs ergibt u Allgemein gilt berall wo in einer Programmiersprache die Angabe 192 Kapitel 6 Interaktivit t durch ActionScript In diesem Unterabschnitt lernen Sie Ausdr cke und ihre Bestandteile kennen e Literale Dies sind w rtlich gemeinte Komponenten wie Zahlen oder Strings Textbl ck
120. eben Im Grunde handelt es sich um den wieder eingef hrten und leicht berarbeiteten Normalmodus der Flash Versionen 5 und MX der in Flash MX 2004 vor bergehend abgeschafft worden war Das Hinzuf gen von ActionScript Befehlen und Funktionen erfolgt wie auch im Standardbetrieb m glich aus dem Fensterbereich links oben oder mit Hilfe der Plus Schaltfl che in der Symbolleiste die bei eingeschalteter Skripthilfe brigens weniger Elemente enth lt Beachten Sie dass manche Eintr ge in den Men s mehrere reale ActionScript Funktionen b ndeln Beispielsweise fasst die hier beschriebene Auswahl goto s mtliche Einzelfunktionen zusammen die weiter unten im Unterabschnitt Sprungbefehle behandelt werden Die manuelle Code Ein gabe ist in diesem Modus brigens gar nicht m glich Es w rde zu weit f hren hier die Eingabe vieler verschiedener Elemente ber die Skripthilfe zu beschreiben Da der Rest des Kapitels die Syntax zahlreicher Action Script Anweisungen beschreibt ist dies auch nicht n tig wer ActionScript beherrscht kommt notfalls auch mit der Skripthilfe zurecht Deshalb wird hier als Beispiel nur die Auswahl der Anweisung goto beschrieben In Abbildung 6 5 sehen Sie die verf gbaren Parameter f r die Aktion goto W hlen Sie Globale Funktionen gt Zeitleistensteuerung gt goto um sie an der aktuellen Skriptposition hinzuzuf gen Im Parameterbereich k nnen Sie folgende Einstellun gen vornehmen e Zun c
121. ehle sie sorgen f r einen Sprung zum Frame link on release gotoAndStop link Wechseln Sie nun in das Bild prod Hier finden Sie drei Schaltfl chen die mit Skrip ten ausgestattet werden sollen Weisen Sie zun chst dem Button Katalog das fol gende Skript zu on release loadMovieNum katalog swf 0 Die Schaltfl che Bestellen bekommt folgende Anweisungen on release loadMovieNum order swf 0 Schlie lich wird noch der Button Hauptmen mit Code versehen on release gotoAndStop main Im Frame info finden Sie vier Schaltfl chen Sorgen Sie nach dem bew hrten Schema daf r dass der Button Gitarrenkunde die Datei aufbau swf auf Stufe O l dt Ebenso soll Akkorde den Film akkorde swf laden und die Schaltfl che Unterhaltung den Film spiel swf Der Button Hauptmen soll wieder zum Frame main zur ckkehren Im Bild kont finden Sie nur zwei Schaltfl chen Sorgen Sie daf r dass G stebuch den Film guest swfl dt w hrend Hauptmen wie blich zum Frame main springen soll Wechseln Sie in das Bild link Hier befindet sich eine kleine Link Liste Weisen Sie der Schaltfl che Fender folgendes Skript zu on release getURL http www fender com blank Statten Sie die restlichen Schaltfl chen entsprechend mit Skripten aus damit sie fol gende Sites jeweils in einem neuen Fenster blank ffnen e Gibson http www gibson com e Washburn http www washburn com e
122. eihenfolge beeinflus sen in der Sie mit der Tab Taste durch Eingabefelder bl ttern k nnen scroll und maxscroll erm glichen Ihnen dagegen das programmpgesteuerte Scrollen in Feldern die zu viel Text enthalten Wenn Sie ein Bild mit mehreren Texteingabefeldern erstellen k nnen Sie diese standardm ig nacheinander von links nach rechts und von oben nach unten mit der Tabulator Taste aktivieren Setzen Sie die Eigenschaft tabIndex Ihrer Textfeld Instanzen um diese Reihenfolge zu modifizieren Je niedriger der Wert von tab Index desto fr her kommt ein Feld an die Reihe Das folgende Codebeispiel geht davon aus dass Sie Eingabefelder mit den Instanznamen name str hausnr plz und ort erstellt haben die in der typischen Reihenfolge einer Anschrift den Eingabe fokus erhalten sollen name tabIndex 1 str tabIndex 2 hausnr tabIndex 3 plz tabIndex 4 ort tabIndex 5 298 Kapitel 9 Formulare erstellen AS Sobald Sie anfangen tabIndex einzusetzen ben tigt jedes Eingabe REN feld auf dem aktuellen Bildschirm das per Tab erreichbar sein soll einen individuellen Wert f r diese Eigenschaft Wenn Sie ein bestimmtes Textfeld v llig aus der Tab Abfolge herausnehmen m ch ten k nnen Sie dessen Eigenschaft tabEnabled explizit auf false setzen Das fol gende Beispiel sorgt daf r dass das Feld mit dem Instanznamen zusatz im Hauptfilm nicht mehr durch Tab angesprungen werden kann zusatz tabEnabled false
123. einer Klassendeklaration verhindert dass Klassen von der entsprechenden Klasse abgeleitet werden bei einer Methode sorgt es entsprechend daf r dass diese in einer untergeordneten Klasse nicht berschrieben werden kann Genau wie Methoden k n nen nun auch Klassen public oder private sein Letzteres ist allerdings nur in den eben falls neu eingef hrten verschachtelten Klassen also Klassen innerhalb einer anderen Klassendefinition sinnvoll Zudem wurde eine weitere Geheimhaltungsstufe hinzuge f gt protected Elemente stehen nicht ffentlich zur Verf gung aber in Instanzen abgeleiteter Klassen Das Schl sselwort package erm glicht es schlie lich Klassenbi bliotheken zu gemeinsamen Namensr umen zusammenzufassen Das Ergebnis sind Klassennamen denen ein durch einen Punkt getrennter Package Name vorangestellt wird was unter anderem f r die Vermeidung von Namenskonflikten sorgt Schlie lich gibt es einige Erweiterungen in der Flash Player API selbst Die neue Klasse Sprite ist weniger aufw ndig als MovieClip und dient somit als praktischere Basisklasse f r Ul Komponenten Per ActionScript erstellte Objekte ben tigen nun keine Tiefenangabe mehr sie werden automatisch gestapelt mehr zum Problem der Tiefe wird im XML Beispiel in Kapitel 10 besprochen V llig neue M glichkeiten ergeben sich durch die Klasse flash net Socket Sie k nnen damit Netzwerkverbindungen ber viele verschiedene Protokolle herstel len SWF Filme
124. eits kennen gelernt die Klasse Auto enth lt eine von ihnen f r jede der vier Instanzeigenschaften Der Datentyp einer Getter Methode muss demjenigen der jeweiligen Eigenschaft entsprechen die einzige Anweisung lautet in der Regel return this Eigenschaft Hier als Beispiel noch einmal die Methode getKmStand public function getKmStand Number Eine Setter Methode ist in der Klasse Auto bisher nicht enthalten da maximale Tank f llung und Verbrauch konstant bleiben sollen w hrend Kilometerstand und aktu elle Tankf llung nur durch den Aufruf der Methoden fahren beziehungsweise tanken modifiziert werden sollen Eine einigerma en plausible Setter Methode w re allerdings setVerbrauch weil Autos dazu neigen allm hlich mehr Kraftstoff zu verbrauchen wenn sie lter werden Diese Methode k nnte so aussehen return this kmStand public function setVerbrauch v Number Void this verbrauch v 246 Kapitel 7 ActionScript 2 0 Klassen Wie hier gezeigt ben tigen Setter Methoden einen Parameter mit dem Datentyp der zu ndernden Eigenschaft ihr eigener Typ ist dagegen Void weil sie keinen Wert zur ckgeben m ssen Auch Setter enthalten normalerweise nur eine Anwei sung n mlich eine Wertzuweisung die die Eigenschaft auf den bergebenen Wert setzt Zus tzlich k nnte man aber auch eine Plausibilit tskontrolle einf hren die nur bestimmte Werte zul sst Beispielsweise lie e sich setVerbrauch folg
125. en funktioniert dies ber den Men befehl Einf gen gt Neues Symbol beziehungsweise mit Hilfe der Tastenkombination STRG F8 W hlen Sie im bekannten Dialog Neues Symbol erstellen unter Verhalten die Option Schaltfl che Die Zeitleiste eines Schaltfl chen Symbols sieht ein wenig anders aus als diejenige des Hauptfilms oder eines Movieclips Statt der nummerierten Bilder sind vier breite benannte Bilder zu sehen Sie tragen die Bezeichnungen Auf Dar ber Gedr ckt und Aktiv siehe Abbildung 6 6 Dar ber Gedr ckt Aktiv ml hintergrund aala e ess o Abbildung 6 6 Die spezielle Zeitleiste eines Schaltfl chen Symbols Diese Bilder repr sentieren die unterschiedlichen Zust nde des Buttons e Auf wird angezeigt solange die Schaltfl che nicht von der Maus ber hrt wird Grundzustand e Dar ber Sobald der Mauszeiger den Button ber hrt wechselt er zu diesem Bild e Gedr ckt Dieser Zustand wird aktiv sobald die Maustaste auf dem Button heruntergedr ckt wird e Aktiv Dies ist kein separater Zustand sondern die Definition des sensitiven Bereichs der Schaltfl che Wenn die Bilder der drei Zust nde unterschiedliche Gr en besitzen oder nicht durchgehend gef llt sind sollten Sie hier ein Schl sselbild einf gen und eine durchgehende F llung erstellen die s mtliche Bereiche der anderen Zust nde bedeckt Dabei kann Ihnen der Zwiebelscha leneffekt helfen ActionS
126. en tigen um den CDs die korrekten Interpreten zuzuordnen Mit dieser Information k nnen Sie sich daranmachen CDs einzugeben mysql gt INSERT INTO cds cd_interpret cd_titel cd_jahr cd_songs gt VALUES 2 III Sides to Every Story 1992 14 Query OK 1 row affected 0 03 sec mysql gt INSERT INTO cds cd_interpret cd_titel cd_jahr cd_songs gt VALUES 2 Pornograffitti 1990 13 Query OK 1 row affected 0 01 sec Eine PHP Testumgebung einrichten 323 mysql gt INSERT INTO cds cd_interpret cd_titel cd_jahr cd_songs gt VALUES 1 Metallica 1991 12 Query OK 1 row affected 0 00 sec Der folgende Befehl zeigt die gesamte Tabelle cds an und zwar aufsteigend ASCending nach Jahr sortiert mysql gt SELECT FROM CDS ORDER BY cd_jahr ASC cd nr cd_interpret cd titel JAHR cd_songs 2 2 Pornograffitti 1990 13 3 1 Metallica 1991 12 1 2 III Sides to Every Story 1992 14 3 rows in set 0 07 sec Der wichtigste Bestandteil einer SELECT Anfrage ist eine WHERE Klausel die Bedin gungen daf r formuliert welche Datens tze ausgew hlt werden sollen Das fol gende Beispiel zeigt nur die beiden CDs von Extreme an mysql gt SELECT FRO
127. en Sie dass es dazu zwei M glichkeiten gibt PHP l sst sich als unabh ngiger Interpreter installieren und kann ber die CGlI Schnittstelle mit einem Webserver zusammenarbeiten Alternativ k nnen Sie PHP als so genanntes SAPI Modul Ser ver API f r verschiedene Webserver einrichten was die Leistungsf higkeit von PHP Anwendungen erheblich verbessert Deshalb wird hier nur die zweite Variante besprochen Installation unter UNIX Auf UNIX Systemen wie Mac OS X und Linux wird PHP bevorzugt aus den Quell codes kompiliert was im Wesentlichen genauso funktioniert wie bei Apache Zun chst einmal m ssen Sie das PHP Installationspaket entpacken und in dessen Verzeichnis wechseln tar xzvf php 5 1 2 tar gz cd php 5 1 2 Nun m ssen Sie das configure Skript aufrufen Damit PHP als Apache 2 Modul installiert wird m ssen Sie dem Skript mitteilen wo sich bei Ihnen das Tool apxs befindet das f r die nachtr gliche Installation von Modulen zust ndig ist Bei einer Eine PHP Testumgebungeinrichten 325 Apache Standardinstallation finden Sie es unter usr local apache2 bin apxs Wei tere Konfigurationsoptionen erhalten Sie ber folgende Anweisung configure help less Wenn Sie PHP als Apache Modul mit Standardeinstellungen unter dem Verzeichnis usr local php5 installieren m chten m ssen Sie nun Folgendes eingeben configure prefix usr local php5 with apxs2 usr local apache2 bin apxs Nachdem configure
128. en noch einige Male erweitert Erstellen Sie wie beschrieben eine neue ActionScript Datei und geben Sie den fol genden Code ein weiter unten erhalten Sie eine genaue Erl uterung class Auto Eigenschaften private var kmStand Number private var tankFuellung Number private var maxTankFuellung Number private var verbrauch Number 234 Kapitel 7 ActionScript 2 0 Klassen Konstruktor public function Auto m Number v Number this maxTankFuellung m this verbrauch v Zu Anfang km Stand 0 Tank voll this kmStand 0 this tankFuellung this maxTankFuellung Methoden public function fahren km Number Void Nur fahren falls das Benzin reicht if km this verbrauch 100 lt this tankFuellung kmStand km tankFuellung km this verbrauch 100 public function tanken 1 Number Void Nur tanken falls die Kapazit t ausreicht if this tankFuellung 1 lt this maxTankFuellung tankFuellung 1 public funct return thi public funct return thi public funct return thi public funct return thi ion getKmStand Number s kmStand ion getTankFuellung Number s tankFuellung ion getMaxTankFuellung Number s maxTankFuellung ion getVerbrauch Number s verbrauch Die Klasse selbst ist keine vollst ndige Flash Anwendung so dass die Funktion Film testen keine W
129. ende Action Script Anweisungen zu on release r1 gotoAndStop 2 r2 gotoAndStop 1 pay rech Die Schaltfl che auf r2 erh lt nat rlich ein sehr hnliches Skript on release r1 gotoAndStop 1 r2 gotoAndStop 2 pay bank Weisen Sie nun dem Button Zur ck die folgenden Anweisungen zu on release gotoAndStop artikel Der Button Bestellen der dem Absenden der Bestellung dient erh lt das folgende Skript on release getURL order php blank POST gotoAndStop danke Das Skript order php das die Bestellinformationen annimmt und in einem separa ten Browserfenster Ziel blank anzeigt wird im n chsten Kapitel vorgestellt Es muss sich im gleichen Verzeichnis befinden wie die aus dem vorliegenden Formu larfilm erstellte SWF Datei Im Bild danke brauchen Sie auf der Ebene actions nur noch die folgende kurze Anweisung einzuf gen stop 306 Kapitel 9 Formulare erstellen e Music Shop Online Bestellung Zwischensumme Pers nliche Daten NETTER Stra e Pz M co Zahlungsweise S Rechnung D Bankeinzug Kontonummer bei Bankeinzug Abbildung 9 7 Die zweite Seite des Bestellformulars Praxisbeispiel Ein Bestellformular 307 In diesem Kapitel KAPITEL 10 menge Interaktion mit einrichten Armes Webserver Anwendungen ActionScript und XML e Praxisbeispiel Bestellannahme und G stebuch We
130. ende Anweisung zu stop Die Zeitleiste des Symbols akkorde muss nun so aussehen wie in Abbildung 6 12 Wechseln Sie wieder zur ck zum Hauptfilm Ziehen Sie eine Instanz des Symbols akkorde auf die B hne und weisen Sie ihr den Instanznamen akk zu Praxisbeispiel Navigation interaktive Demo und Spiel 223 x z L labels Deus oE obe oeh em obm geDm g 2 sounds Ba o LA griffe Ne Kerr er en I griffbrett 0 m zi ETETEN el feosps 00 aj Abbildung 6 12 Die Zeitleiste des Symbols akkorde Ziehen Sie nun die sieben Schaltfl chen aus dem Bibliotheksordner buttons auf die B hne so dass sie nebeneinander unter dem Griffbrett liegen Weisen Sie dem But ton aus folgendes Skript zu on release stopAllSounds Wichtig akk gotoAndStop aus Verfahren Sie mit den sechs anderen Buttons ebenso Die Sprungziele in der Instanz akk sind nat rlich mit den Beschriftungen der Schaltfl chen selbst identisch Ein Bildpaare Suchspiel Spiele sind seit sp testens Flash 4 eine der beliebtesten Anwendungen des Pro gramms In diesem Abschnitt wird deshalb die Flash Version eines beliebten und bekannten Bildpaare Suchspiels vorgestellt ffnen Sie die Datei spiel_start fla aus dem Verzeichnis beispiele kapitel6 der Buch CD Da es in diesem Beispiel vor allem um ActionScript geht sind alle anderen Arbeiten beispielsweise die Erstellung von Sym
131. enderma en erg nzen damit sich der Verbrauch erh hen aber nicht vermindern l sst public function setVerbrauch v Number Void Nur ndern falls v gt aktueller Verbrauch if v gt this verbrauch this verbrauch v BR u In der Praxis sollte ein unzul ssiger Wert nicht einfach kommentar los verworfen werden sondern zu einem definierten Fehler f hren u N heres dazu finden Sie weiter unten im Abschnitt Ausnahmenbe handlung Vererbung Eine der interessantesten F higkeiten objektorientierter Programmiersprachen ist die Spezialisierung von Klassen durch die so genannte Vererbung Sie erm glicht es Ihnen das Rad nicht neu erfinden zu m ssen einmal gefundene L sungen las sen sich in jeweils abgewandelter oder erg nzter Form wiederverwenden Formal funktioniert Vererbung sehr einfach Bei der Definition der Klasse wird das Schl sselwort extends und der Name der Elternklasse hinzugef gt Hier als Beispiel der Rahmen der von Auto abgeleiteten Klasse LKW die gleich n her beschrieben wird class LKW extends Auto Instanzen der abgeleiteten Klasse verf gen ber s mtliche ffentlichen Eigenschaf ten und Methoden der Elternklasse Wichtig ist allerdings dass Sie den Konstruktor neu schreiben er wird nicht automatisch vererbt Gl cklicherweise k nnen Sie innerhalb des neuen Konstruktors aber denjenigen der Elternklasse aufrufen indem Sie super schreiben nderungen un
132. enen Methoden der Klasse Math wie Math floor sind ein bekanntes Beispiel Klassen entwerfen und programmieren 245 F r das Auto Beispiel lie e sich auf diese Weise etwa eine ganz allgemeine Rechen methode schreiben die den Kraftstoffverbrauch pro 100 km aus einer angegebenen Strecke und einer tats chlich verbrauchten Menge Kraftstoff ermittelt Diese Klas senmethode k nnte beispielsweise so aussehen public static function berechneVerbrauch km Number 1 Number Number Diese Methode k nnten Sie einsetzen um einen hypothetischen Kraftstoffver brauch zu berechnen ohne eine Auto Instanz zu erzeugen Beispiel return 1 100 km 320 km gefahren 30 1 verbraucht trace Auto berechneVerbrauch 320 30 Das Ergebnis ist ein Verbrauch von 9 375 l auf 100 km Accessor Methoden Die bereits erw hnten Accessor Methoden dienen dem direkten Zugriff auf ausge w hlte Instanzeigenschaften Man unterscheidet Getter Methoden die einfach den Wert einer Eigenschaft zur ckgeben und Setter Methoden die der Eigenschaft einen neuen angegebenen Wert zuweisen Accessor Methoden bieten die M glich keit Eigenschaften auszulesen oder zu modifizieren obwohl sie empfehlenswerter weise als private deklariert wurden Da Sie sich selbst aussuchen k nnen f r welche Eigenschaften Sie eine Getter und oder Setter Methode bereitstellen widerspricht dieser Weg nicht dem Konzept der Kapselung Getter Methoden haben Sie ber
133. enfalls sehr viel Dokumentationsmaterial Apache unter UNIX kompilieren Auf das Kompilieren des Quellcode Pakets httpd 2 2 0 tar gz wird hier nicht allzu genau eingegangen Unter dem Flash relevanten Betriebssystem Mac OS X ist es in der Regel nicht erforderlich weil Apache standardm ig automatisch mit dem Sys tem installiert wird Wenn Sie Ihren Webserver dagegen auf einem Linux oder sonstigen UNIX System betreiben m chten k nnen Sie der nachfolgenden Kurz anleitung folgen Zun chst m ssen Sie die Archivdatei entpacken und anschlie end in das entspre chende Verzeichnis wechseln tar xzvf httpd 2 2 0 tar gz cd httpd 2 2 0 Vor dem eigentlichen Kompiliervorgang wird nun das Konfigurationsskript aufge rufen das die Makefiles an Ihr Betriebssystem und Ihre Sonderw nsche anpasst Geben Sie f r Standardoptionen einfach Folgendes ein configure So wird Apache 2 2 zur Installation mit den wichtigsten Modulen unter dem Ver zeichnis usr local apache2 konfiguriert Alternative Optionen k nnen Sie vor der Ausf hrung des eigentlichen Konfigurationsbefehls folgenderma en erfahren configure help less Nun m ssen Sie noch unbedingt als root die Standardbefehle zur Kompilierung und Installation eingeben make make install Anschlie end k nnen Sie den Server folgenderma en in Betrieb nehmen usr local apache2 bin apachectl start Falls Sie sich bei der Konfiguration f r ein anderes
134. enn Sie auf Execute klicken werden die gew hlten nderungen durchge f hrt Falls es nicht klappen sollte m ssen Sie berpr fen ob eventuell bereits ein lterer MySQL Dienst l uft oder ob Ihre lokale Firewall den Port 3306 blo ckiert ber MySQL Wenn Sie eine gr ndliche Einf hrung in MySQL ben tigen k nnen Sie sich mein Buch Praktischer Einstieg in MySQL mit PHP aus der vorliegenden O Reilly Buch reihe besorgen Hier finden Sie einige Informationen f r die ersten Schritte Wie die meisten Datenbankserver ist MySQL eine so genannte relationale Daten bank Dieser Begriff besagt dass die Daten in Tabellen organisiert sind die zueinan der in Beziehung Relation gesetzt werden k nnen Dies sorgt daf r dass Daten niemals doppelt in der Datenbank gespeichert werden m ssen Denken Sie zum Beispiel an eine CD Datenbank Eine Tabelle enth lt Informationen ber die einzel nen CDs wie Interpret Titel Spielzeit und so weiter Da mehrere CDs vom selben Interpreten stammen k nnen empfiehlt es sich die Interpreten in einer separaten Tabelle zu speichern Der Eintrag Interpret in der CD Tabelle ist dann lediglich die Nummer des entsprechenden Interpreten aus der Interpreten Tabelle F r die Arbeit mit relationalen Datenbanken sollten Sie einige Begriffe kennen Eine Tabellenzelle die eine Information ber einen einzelnen Gegenstand enth lt hei t Datenfeld Eine Zeile mit s mtlichen Informationen ber einen Gegen
135. enschaftenleiste den Texttyp Eingabetext ein Ziehen Sie nun auf der B hne ein Textfeld mit der Schriftarteinstellung _sans Ger teschriftart auf Geben Sie in der Eigenschaftenleiste unter Var den Variablennamen q ein 2 Erstellen Sie ein Schaltfl chensymbol mit der Beschriftung Google Suche Ziehen Sie eine Instanz davon auf die B hne und weisen Sie ihr folgendes Skript zu on release getURL http www google de search self GET 3 Erstellen Sie mit Hilfe der Funktion Ver ffentlichen oder auf Wunsch manuell ein HTML Dokument mit der eingebetteten SWF Version dieses Films ffnen Sie die HTML Datei im Browser geben Sie einen Suchbegriff in das Textfeld ein und dr cken Sie auf die Schaltfl che Im Browser erscheint nun das Ergeb nis der Google Suche nach dem eingegebenen Begriff Technisch gesehen handelt es sich hier um das quivalent eines HTML Formulars mit der Versandmethode GET Beim Klick auf die Schaltfl che konstruiert der Flash Player aus dem Namen der Variablen q und ihrem Wert der Benutzereingabe einen Query String h ngt ihn an die URL der getURL Funktion an und sendet die Anfrage ab Bei der Suchmaschine kommt dies genau so an als h tten Sie einen Suchbegriff in deren eigenes Textfeld eingetippt brigens versenden auch die Funktionen loadVariablesNum beziehungsweise load Variables optional Variablen wenn Sie als drittes Argument eine der Methoden GET oder POST hinzuf gen Auf d
136. er Ihre Domain verwendet gem dem obigen Beispiel also webmas ter test local In aller Regel sollten Sie ganz unten die Option for All Users on Port 80 as a Service aktivieren Dies sorgt daf r dass Apache beim Hochfahren von Win dows automatisch als regul rer Webserver gestartet wird 5 Installationstyp F r gew hnlich sollten Sie hier Custom w hlen damit m g lichst alles installiert werden kann 6 Wenn Sie im vorigen Schritt Custom gew hlt haben k nnen Sie nun die Kom ponenten ausw hlen die Sie installieren m chten Wenn Sie sich keine Sorge um Festplattenplatz machen m ssen sollten Sie hier einfach unter Apache HTTP Server 2 0 55 den Punkt This Feature and all subfeatures will be installed on local hard drive aus dem Pop up Men ausw hlen Unten auf derselben Registerkarte k nnen Sie das Verzeichnis w hlen in das Apache installiert wer den soll der Vorgabewert ist Windows Laufwerk Programme Apache Group 7 Auf der letzten Seite m ssen Sie sich endg ltig entscheiden Klicken Sie auf Install um die Installation mit den gew hlten Optionen durchzuf hren oder auf Back um sie noch einmal zu ndern Nach der Installation k nnen Sie Apache ber den Apache Monitor das kleine Feder Symbol im Systray Bereich der Taskleiste neben der Uhrzeit steuern Grundkonfiguration und Test Die Konfiguration des Apache Webservers erfolgt nicht ber eine grafische Oberfl che sondern ber eine zentral
137. er lt item gt Tags in denen das Attribut href f r die jeweilige Link Adresse und caption f r die Beschriftung steht Mit der Website von O Reilly sowie meiner eigenen als Beispie len sieht diese Datei so aus lt xml version 1 0 encoding utf 8 gt lt menu gt lt item href http www oreilly de caption O amp apos Reilly gt lt item href http www oreilly de basics caption Reihe Basics gt lt item href http www oreilly de web caption Thema Web gt lt item gt lt item href http buecher lingoworld de caption Sascha Kersken gt lt item href http buecher lingoworld de flash caption Flash gt lt item href http buecher lingoworld de apache2 caption Apache 2 gt lt item href http buecher lingoworld de mysql caption MySQL gt lt item lt menu gt Die Funktion getMenultems die diese Datei auswertet und die entsprechenden Men elemente zeichnet arbeitet rekursiv das bedeutet dass sie sich f r die unter geordneten XML Elemente jeweils selbst aufruft Dies stellt sicher dass die Hierar chie korrekt abgearbeitet wird Die Funktion nimmt drei Parameter entgegen den DOM XML Knoten Klasse XMLNode x der einen Bestandteil des XML Dokuments wie ein Element oder einfachen Text repr sentiert die numerische Einr ckungstiefe indent sowie die aktuelle Zeile row ebenfalls eine Zahl function getMenultems x XMLNode indent Number row Number Number
138. er Benutzeroberfl che des Formulars Die Bestellannahme und verarbeitung die auf dem Server stattfindet wird brigens im n chsten Kapitel vorgestellt ffnen Sie die Datei form_start fla im Verzeichnis beispiele kapitel9 der CD ROM Ihre Aufgabe besteht darin mehrere Texteingabefelder Schaltfl chen und Action Script Anweisungen hinzuzuf gen der statische Teil der Benutzeroberfl che ist dagegen bereits fertig Praxisbeispiel Ein Bestellformular 303 Setzen Sie den Abspielkopf zun chst in das Bild mit der Bezeichnung artikel Bild 2 Dieses Frame bildet die erste Formularseite auf der die eigentliche Bestell auswahl stattfindet Jeder Artikel soll ein Eingabefeld f r die gew nschte St ckzahl erhalten W hlen Sie dazu in der Werkzeugpalette das Textwerkzeug aus Stellen Sie in der Eigenschaftenleiste den Typ Eingabetext die Schriftart Arial die Gr e 14 Punkt und die Farbe Schwarz ein Aktivieren Sie die Schaltfl che Rahmen um Text zeigen W hlen Sie unter Zeichen ausschlie lich Ziffern aus etwas anderes soll in diese Felder gar nicht eingegeben werden Ziehen Sie das erste Textfeld unter der Beschriftung St ckzahl in der Zeile Original Fender Stratocaster E Gitarre auf Geben Sie in der Eigenschaftenleiste unter Var den Variablennamen strat ein Erstellen Sie darunter beispielsweise durch Dupli zieren die vier restlichen Textfelder mit folgenden Variablennamen yama Yamaha Halbakustik Gitarre amp Marshal
139. er Regel vor dem jeweils n chsten case ein break das den Block verl sst Der optionale Einstiegspunkt default wird gew hlt wenn die Variable keinem der angegebenen Werte entspricht Er gilt also f r alle anderen Werte und entspricht damit dem letzten else in einer verschachtelten if else Abfolge Daher ist default beispielsweise n tzlich um unzul ssige Werte etwa Benutzereingaben abzufangen Das folgende Beispiel vergleicht den Wert der Variablen auswahl mit verschiedenen Zeichen switch auswahl case a gotoAndPlay anfang break case s gotoAndPlay spiel break case case q gotoAndStop ende default gotoAndPlay ungueltig Der Wert von auswahl entspricht hier offensichtlich einem Tastendruck zur Steue rung einer Flash Anwendung Interessant sind die beiden aufeinander folgenden case Zeilen f r die Werte e und q Da erst das n chste break den Block wieder verl sst k nnen Sie auf diese Weise f r verschiedene Elemente dieselben Anwei sungen ausf hren Schleifen Es kommt oft vor dass ein Programm bestimmte Aufgaben mehrmals erledigen soll Nat rlich k nnen Sie in Flash stets mit gotoAndPlay zu einem fr heren Bild zur ckspringen um eine solche Wiederholung in der Zeitleiste einzurichten Wenn es aber speziell darum geht ActionScript Anweisungen zu wiederholen sollten Sie eher eine programmierte Schleife benutzen Davon gibt es verschiedene Typen die hier kurz vo
140. ern soll Das Ziel legt fest in welches Browserfenster 270 Kapitel 8 Mit ActionScript auf externe Daten zugreifen oder Frame das neue Dokument geladen werden soll Die Methode GET oder POST brauchen Sie schlie lich nur zu verwenden wenn Ihr Flash Film seine Variablen an die URL senden soll Dies ergibt nur dann einen Sinn wenn ein serverseitiges Skript angesprochen wird siehe Kapitel 10 Interaktion mit Webserver Anwendungen Wenn Sie das folgende Skript einer Schaltfl che zuweisen wird bei einem Klick im aktuellen Browserfenster die Homepage des O Reilly Verlags ge ffnet on release getURL http www oreilly de Mit Fenstern und Frames arbeiten In diesem Unterabschnitt soll der zweite Parameter von getURL das Ziel n her beleuchtet werden Wie bereits erw hnt handelt es sich um die Angabe des Brow serfensters oder Frames in das die neue URL geladen werden soll Falls es sich um ein Frame handelt wird dessen selbst definierter Name angegeben Daneben gibt es vier vordefinierte Namen die jeder Browser versteht e self das aktuelle Frame beziehungsweise Fenster dies ist Standard e parent das bergeordnete Frame e top das gesamte Browserfenster egal wie tief das aktuelle Frame verschach telt ist e blank ein neues leeres Browserfenster Die folgende Anweisung l dt die Datei seite2 html aus dem aktuellen Verzeichnis in das Frame inhalt getURL seite2 html inhalt Mit dieser
141. erweist auf die neu erstellte Kopie damit im Folgenden ihre Eigenschaften und Variablen modifiziert werden k nnen Als Erstes wird ihre x Position berechnet es handelt sich um die Summe aus 10 Pixeln vom linken Rand entfernt und dem Drei igfachen der aktuellen Einr ckungsstufe theItem x 30 indent 10 Die y Position hat ebenfalls einen Abstand von zehn Pixeln vom oberen Rand pro Zeile werden die H he der Instanz und 10 Pixel Abstand hinzuaddiert theItem y theItem height 10 row 10 Als N chstes werden die beiden Clip Variablen f r die Verkn pfungs URL bezie hungsweise die Beschriftung gesetzt theltem href href theltem cap cap Nun wird die Instanz die nun das richtige Aussehen und die korrekte Position besitzt sichtbar gemacht theltem visible true ActionScriptundXML 339 Zu guter Letzt wird die Zeilennummer um 1 erh ht da soeben erfolgreich ein Men punkt angezeigt wurde roW Der Rest des Codes muss f r jeden Knoten ausgef hrt werden also auch dann wenn es kein Men punkt war Mit Hilfe der XMLNode Eigenschaft hasChildNodes wird berpr ft ob es untergeordnete XML Knoten gibt if x hasChildNodes In diesem Fall werden diese in einer Schleife durchwanderrt for var j Number 0 j lt x childNodes length j F r jeden Kindknoten erfolgt ein verschachtelter Aufruf von getMenultems Als Parameter werden der aktuelle Kindknoten die um 1 erh hte Einr ckung s
142. es 1 Prinzipiell ist dies zwar m glich weil Macromedia das SWF Format offen gelegt hat und weil es f r viele Programmiersprachen entsprechende Schnittstellen gibt Hier geht es aber um die Kommunikation zwi schen Server Anwendungen und auf die klassische Weise erzeugten Flash Filmen 310 Kapitel 10 Interaktion mit Webserver Anwendungen Benutzers weiter CGI arbeitet langsamer als andere Server Programmierschnittstel len wird daf r aber von fast jedem Webserver unterst tzt und kann in beliebigen Sprachen programmiert werden Die beliebteste Sprache f r die CGI Programmie rung ist Perl vor allem weil sie ber hervorragende M glichkeiten zur Textmani pulation verf gt und weil ein Standardmodul mit speziellen CGI Funktionen zur Verf gung steht PHP Die Programmiersprache PHP ist zurzeit die beliebteste und verbreitetste L sung f r Webserver Anwendungen Sie ist frei verf gbar arbeitet mit vielen verschiede nen Webservern zusammen und l uft auf zahllosen UNIX Varianten sowie unter Windows die aktuelle Version ist 5 1 PHP besticht durch eine leicht zu erlernende an C und Perl angelehnte Syntax unz hlige Spezialfunktionen f r die Web Pro grammierung sowie Schnittstellen zu den meisten bekannten Datenbanksystemen Dabei wird PHP unmittelbar an die passenden Stellen von HTML Dokumenten geschrieben Wenn Sie eine gr ndliche Einf hrung in die Sprache brauchen emp fehle ich Ihnen das Buch PHP 5 Ein praktischer Ein
143. f llt brigens der Film Explorer Fens ter gt Film Explorer oder ALT F3 er zeigt aber nicht nur die Skripte sondern auch andere Objekte des Dokuments in einer hierarchischen bersicht an Den Hauptbereich der Aktionen Palette bildet nat rlich der rechte Fensterteil Hier werden die eigentlichen Skripte eingegeben Die Eingabe bleibt besonders durch zwei Aspekte besonders bersichtlich das Syntax Highlighting also die unter schiedliche Einf rbung verschiedener Skriptbestandteile sowie die automatische Einr ckung verschachtelter Anweisungen m PBVERE A Skripthilfe Abbildung 6 3 Die Symbolleiste der Aktionen Palette ber dem eigentlichen Skriptbereich finden Sie die Symbolleiste die in Abbildung 6 3 zu sehen ist Sie bietet eine Reihe n tzlicher Werkzeuge zur Skriptbearbeitung Von links nach rechts handelt es sich kurz gefasst um folgende Funktionen e Skriptobjekt hinzuf gen Dieses Pop up Men enth lt dieselbe hierarchische Anordnung von ActionScript Elementen zum schnellen Einf gen wie der linke obere Fensterbereich e Suchen Tastenkombination STRG F Sucht im aktuellen Skript nach dem eingegebenen Text und ersetzt ihn gegebenenfalls durch einen anderen Zum Weitersuchen nach demselben Suchbegriff k nnen Sie jeweils F3 dr cken Wenn Sie in allen Skripten und anderen Elementen des Films nach einem bestimmten Text suchen oder diesen ersetzen m chten m ssen Sie stattdessen den Men befehl Be
144. fragen die ein Client bei spielsweise ein Browser oder der Flash Player an einen Webserver senden Beide Arten von Anfragen k nnen Formulardaten transportieren unterscheiden sich aber ein wenig voneinander 283 Um den genauen Unterschied zu verstehen sollten Sie sich zun chst einmal vor Augen f hren wie eine HTTP Transaktion berhaupt funktioniert Als Beispiel soll eine Browser Anfrage f r die O Reilly Seite zu diesem Buch http www oreilly de catalog flashmxbas2ger dienen Diese Adresse wird zun chst in den Browser ein gegeben meist ohne das vorangestellte http da es Standard ist Der Browser trennt die Bestandteile der URL voneinander Anfrageschema http angesprochener Rechner www oreilly de und Pfad catalog flashmxbas2ger Als N chstes ermittelt der Browser ber das Domain Name System DNS die echte Adresse IP Adresse hinter www oreilly de zurzeit 62 206 71 33 baut eine Netzwerkverbindung zu die ser Adresse auf und sendet an sie die folgende HTTP Anfrage GET catalog flashmxbas2ger HTTP 1 1 Accept Accept Language de en User Agent Mozilla 4 0 compatible MSIE 6 0 Windows NT 5 01 Host www oreilly de Connection Keep Alive Relevant ist vor allem die erste Zeile der Anfrage GET ist die bereits erw hnte Anfra gemethode Sie dient im Unterschied zu anderen Methoden der einfachen Anforde rung einer Ressource die der Client anzeigen oder herunterladen m chte Die zweite Komponente ist
145. ft abwechselnd die Methoden der Instanz und die lokale Funktion auskunft auf Beispiel auto fahren 250 trace Nach 250 km Fahrt auskunft auto Wie Sie bereits am Beispiel der einzelnen Auto Instanz sehen k nnen ist der objekt orientierte Ansatz erheblich bersichtlicher und in der Folge weniger fehleranf llig als die imperative Variante Endg ltig klar macht dies die hier vollst ndige Neuimplementierung des Array Beispiels unter Verwendung der Klasse function auskunft a Auto n Number trace Das Auto n hat a getTankFuellung l im Tank und a getkmStand km auf dem Tacho var autos new Array autos O new Auto 35 6 autos 1 new Auto 50 10 autos 2 new Auto 45 15 for var i Number 0 i lt 3 i auskunft autos i i autos i fahren 250 auskunft autos i i autos i tanken 10 auskunft autos i i Beachten Sie dass ein Array stets eine Sammlung von Elementen beliebiger Daten typen sein kann Sie k nnen weder dem Array insgesamt noch seinen einzelnen Elementen einen festen Datentyp zuordnen Hier der Vollst ndigkeit halber die Ausgabe des Beispiels Das Auto O hat 35 1 im Tank und O km auf dem Tacho Das Auto O hat 20 1 im Tank und 250 km auf dem Tacho Das Auto O hat 30 1 im Tank und 250 km auf dem Tacho Das Auto 1 hat 50 1 im Tank und O km auf dem Tacho Das Auto 1 hat 25 1 im Tank und 250 km auf dem Tacho D
146. gleichnamigen Bedienfeld Fenster gt Komponenten oder STRG F7 In Abbildung 9 4 wird diese Palette dargestellt 300 Kapitel 9 Formulare erstellen oo i Komponenten El Data E FLY Playback Player 8 FLY Playback Custom UI E Media Player 6 7 E t User Interface Accordion z Alert Button CheckBox ComboBox DataGrid DateChooser DateField Label List Loader l REA Menu Ew jE a MenuBar NumericStepper BEE ProgressBar xl Abbildung 9 4 Das Bedienfeld Komponenten hier aus Flash Professional 8 Nachdem Sie eine Komponente auf die B hne gezogen haben m ssen Sie ihre Ein stellungen anpassen Neben dem bekannten Instanznamen der wie immer in der Eigenschaftenleiste eingegeben wird gibt es dazu den Komponenten Inspektor Fens ter gt Komponenten Inspektor oder ALT F7 siehe Abbildung 9 5 Die Register karte Parameter in der Eigenschaftenleiste erf llt brigens dieselbe Aufgabe oo xi i w Komponenten Inspektor RadioButton a Parameter Bindungen Schema data groupName radio roup label Radio Button labelPlacement right selected false Abbildung 9 5 Der Komponenten Inspektor hier mit den Eigenschaften eines RadioButtons Textfelder und Komponenten in Flash 301 Die Ul Komponenten die Flash 8 ab Werk enth lt sind in Tabelle 9 2 zu finden Flash Profe
147. globale Variable sie enth lt jeweils die Bezeichnung des Frames auf dem das vorige Produkt angezeigt wird Es gibt eine hnliche Variable namens next_frame die die Bezeichnung des Frames mit dem nachfolgenden Produkt ent h lt Die passenden Werte werden jeweils automatisch beim Passieren der Bildskripte auf der Ebene actions festgelegt Danach erh lt der Button pause folgendes Skript on release is_playing false stop Der Schaltfl che play k nnen Sie die folgenden ActionScript Anweisungen zuwei sen on release is_playing true play Zu guter Letzt ben tigt der Button forward noch ein Skript Schreiben Sie die fol genden Anweisungen hinein on release if is_playing gotoAndPlay next_frame else gotoAndStop next_frame Eine interaktive Demo Die n chste Beispielanwendung demonstriert die Steuerung von Movieclips Sie k nnen mit Hilfe von Schaltfl chen einige Akkorde ausw hlen Diese werden auf dem Griffbrett einer Gitarre angezeigt und gleichzeitig abgespielt Die Gitarre ist ein Movieclip der von au en angesteuert wird 222 Kapitel 6 Interaktivit t durch ActionScript ffnen Sie zun chst die Datei demo_start fla aus dem Verzeichnis beispiele kapitel6 der CD ROM Die B hne enth lt wie blich das Logo in der Bibliothek finden Sie ein Symbol namens griffbrett sowie sechs importierte Sounds die Akkorde E A H7 e a und d Erzeugen Sie zuerst ein neues Symbol vom T
148. gt Google Frissh e zj FlashRock Music Shop Kundenumfrage 2006 Bitte beantworten Sie kurz die folgenden Fragen damit wir unseren Service f r Sie noch weiter verbessern k nnen Unter allen Besuchern die bis zum 30 06 2006 teilnehmen verlosen wir drei Original Fender Stratocaster Gitarren Welcher Bereich unserer Website gef llt Ihnen am besten Neuigkeiten Shop Forum Veranstaltungskalender An welchen Bereichen unserer Site k nnten wir noch etwas verbessern Fi Neuigkeiten C Shop D Forum i Veranstaltungskalender Ihr Verbesserungsvorschlag Formular f r Tipps der Besucher Wie haben Sie von uns erfahren Zeitschriftenwerbung Web Werbebanner Suchmaschine Pers nliche Empfehlung Ihre E Mail Adresse f r das Gewinnspiel james_h playbass coi wird garantiert nur f r die Verlosung verwendet Abschicken Zur cksetzen Fertig Abbildung 9 1 Das HTML Formular im Browser Wenn das Formular so ausgef llt wird wie in der Abbildung sieht die Adresszeile nach dem Klick auf die Schaltfl che Abschicken so aus form html bgut frum amp bschl news amp impr Formular f FCr Tipps der Besucher kont such mail james_h playbass com Webformulare im berblick 291 Der Pfad zum Dokument am Anfang der URL sieht je nach Speicherort und Brow ser unterschiedlich aus so dass er hier absichtlich weggelassen und durch
149. gt im Aus gabefenster sechs zuf llig gezogene Lottozahlen sowie eine Zusatzzahl an Dazu wird ein Array mit allen 49 Zahlen Kugeln angelegt Mit Hilfe der Funktion splice wird jeweils eine zuf llige Kugel aus diesem Array entfernt und in einem zweiten Array gespeichert ActionScript Grundelemente 209 Arrays f r Kugelvorrat und gezogene Kugeln einrichten var kugeln new Array var gezogen new Array Die 49 Kugeln erzeugen und im Array speichern for var i 1 i lt 49 i ugeln push i Sieben Kugeln ziehen for var j 0 j lt 7 j Zufallszahl zwischen 1 und der restlichen Kugelanzahl var z Math floor Math random kugeln length Element an der Zufallsposition entfernen var aktuell kugeln splice z 1 Gezogenes Element speichern gezogen push aktuell Ausgabe for i 0 i lt 6 i trace gezogen i x lt trace Zufallszahl gezogen 6 Funktionen Wenn Sie bestimmte Codebl cke immer wieder ben tigen bietet es sich an sie in eine Funktion auszulagern Im Grunde sind Funktionen nichts weiter als benannte Anweisungsfolgen Sie haben in diesem Kapitel bereits zahlreiche vordefinierte Funktionen kennen gelernt zum Beispiel trace oder gotoAndPlay Wenn Sie selbst Funktionen definieren k nnen Sie sie innerhalb Ihres Films selbstverst nd lich genauso einsetzen Setzen Sie Funktionsdefinitionen einfach in ein Bildskript am einfach
150. hine MySQL wird nicht mit Priorit t ausgef hrt sondern wie auf einem Arbeitsrechner n tig als ein Programm unter vielen 3 Als Datenbanktyp sollten Sie Multifunctional Database w hlen um flexibel mit allen MySQL Tabellentypen arbeiten zu k nnen 4 Unter Tablespace k nnen Sie Laufwerk und Verzeichnis f r Ihre MySQL Datenbanken einstellen 5 W hlen Sie Decision Support f r maximal 20 gleichzeitige Client Verbindungen mehr braucht ein Testrechner nicht 6 Behalten Sie den Standard TCP Port 3306 bei auch Enable Strict Mode f r eine strengere Datenbankabfrage Syntax sollten Sie eingeschaltet lassen 7 Die beste Zeichensatzeinstellung f r Webanwendungen ist Standard Character Set ISO 8859 1 8 W hlen Sie Install As Windows Service und Launch the MySQL Server auto matically um MySQL als Dienst zu installieren und beim Booten automatisch zu starten Include Bin Directory in Windows PATH sorgt nach einem System neustart daf r dass Sie die MySQL Kommandozeilen Hilfsprogramme aus jedem Verzeichnis aufrufen k nnen 9 Aktivieren Sie Modify Security Settings und geben Sie ein Passwort f r den MySQL Administrator root ein Enable root access from remote machines sollte deaktiviert werden die Fernadministration von Servern sollte ein weniger pri vilegierter Benutzer vornehmen Create An Anonymous Account ist in der Regel ebenfalls nicht empfehlenswert Eine PHP Testumgebungeinrichten 321 10 W
151. hoden und Eigenschaften zur Verf gung Beispielsweise k nnen Sie ber die Methode contentType bestimmen welchen Datentyp die mittels POST gesendeten Variablen haben sollen Der Stan dardtyp ist wie bei einem HTML Formular die einfache URL Codierung applica tion x www form urlencoded F r spezielle Anwendungen kann aber ein anderer MIME Type n tzlicher sein Das folgende Beispiel legt einfachen Text text plain als Format fest loader contentType text plain Ein weiteres Hilfsmittel ist die Eigenschaft loaded Sie erh lt den Wert true sobald die Variablen fertig geladen sind Das folgende Beispiel bewirkt einen Sprung zu einem Frame namens showData sobald die Instanz loader ihre Arbeit beendet hat if loader loaded gotoAndPlay showData Auf diese Weise lassen sich auch f r externe Daten Preloader Schleifen siehe Kapi tel 8 erstellen Wenn Sie gar eine Prozentanzeige oder einen Fortschrittsbalken ver wenden m chten k nnen Sie die beiden Methoden getBytesLoaded und getBytesTotal zueinander in Beziehung setzen die die Anzahl der bereits gelade nen beziehungsweise der insgesamt erwarteten Bytes liefern Das folgende Beispiel gibt den entsprechenden Prozentwert in ein Textfeld aus das mit einer Variablen namens loadPercent verkn pft ist loadPercent parseInt 100 loader getBytesTotal getBytesLoaded 334 Kapitel 10 Interaktion mit Webserver Anwendungen Zu guter Letzt k nnen Sie
152. hst k nnen Sie sich f r eine der beiden Optionen Gehe zu und abspielen oder Gehe zu und stoppe entscheiden der Film wird am Sprungziel weiter abgespielt beziehungsweise angehalten e Darunter k nnen Sie eine Szene ausw hlen Szenen bieten eine praktische M glichkeit Flash Filme zu strukturieren sie werden weiter unten bespro chen e Der Typ bestimmt wie das Zielbild angegeben wird Bildnummer ist die in der Zeitleiste ablesbare Nummer des gew nschten Bildes Mit Bildbezeichnung springen Sie zu einem Schl sselbild dem in der Eigenschaftenleiste ein Name zugeordnet wurde Ausdruck erm glicht die Angabe eines beliebigen Aus drucks der durch Berechnung oder Zusammenf gung eine Bildnummer bezie 180 Kapitel 6 Interaktivit t durch ActionScript hungsweise einen Bildnamen ergibt Zu guter Letzt k nnen Sie noch N chstes Bild oder Voriges Bild w hlen relative Spr nge ohne jegliche Parameter e Als Letztes wird Bild angegeben zu dem der Sprung erfolgen soll je nach gew hltem Typ in unterschiedlichem Format F r den Typ Bildbezeichnung k nnen Sie einen der verf gbaren Bezeichner aus dem Pull down Men aus w hlen w Aktionen Bild ul cript 1 0 amp 2 0 goto Geht zum angegebenen Bild des Films Globale Funktionen Gehe zu und abspielen C Gehe zu und stoppe J Zeitleistensteuerung E ee H aktuel zeni ka goto Esc g0 iri le play Esc pl Typ
153. hungsweise Taste folgende Berei che ausw hlen Grofsbuchstaben A Z Kleinbuchstaben a z Ziffern 0 9 Satzzeichen Lateinisch einfach sowie Lateinisch 1 304 Kapitel 9 Formulare erstellen Music Shop Online Bestellung Original Fender Stratocaster E Gitarre Yamaha Halbakustik Gitarre Marshall Kofferverst rker 30 Watt Gitarrenkabel 3m Lehrbuch Rock Gitarre von Peter Bursch Abbildung 9 6 Die erste Seite des Flash Formulars Ziehen Sie links neben die Bezeichnung Rechnung und links neben Bankeinzug je eine Instanz des Symbols myradio Es handelt sich dabei um einen Movieclip der die Aufgabe von RadioButtons bernehmen soll aber optisch besser zu diesem For mular passt als die offizielle Komponente Weisen Sie den beiden Buttons die Instanznamen r1 beziehungsweise r2 zu Ziehen Sie danach je eine Instanz von leer button darauf Dieses Frame erh lt auf der Ebene actions das folgende Skript Zwischensumme berechnen zsumme 0 f strat zsumme strat 599 He Ho f yama zsumme yama 399 f amp zsumme amp 299 He H v f kab zsumme kab 14 if buch zsumme buch 19 zsumme Praxisbeispiel Ein Bestellformular 305 Initialisierung der Zahlungsweise Rechnung ist vorausgew hlt var pay rech r1 gotoAndStop 2 stop Weisen Sie dem linken leerbutton der auf der Instanz r1 liegt folg
154. ich if pos 1 bildNr pos 2 bildNr gleich true paare else gleich false function schliessen offene 0 warten 0 versuche War ein Paar offen if gleich pos 1 gotoAndStop 8 pos 2 gotoAndStop 8 if paare 6 gotoAndStop win else pos 1 gotoAndStop 1 pos 2 gotoAndStop 1 Genauere Erl uterungen zur Funktion dieses Codes haben Sie bereits im vorigen Unterabschnitt erhalten Das Skript in Frame 3 ist im Gegensatz dazu sehr kurz stop Praxisbeispiel Navigation interaktive Demo und Spiel 227 Selbstverst ndlich ist es auch ohne Weiteres m glich diese Anweisung im Skript von Frame 2 unterzubringen Allerdings ist es bersichtlicher Initialisierungscode und Funktionsdefinitionen von einfachen Navigationsanweisungen zu trennen In Frame 20 unter der Markierung win k nnen Sie folgendes Skript einf gen das die Anzahl der ben tigten Versuche und einen passenden Kommentar ausgibt ausgabe Sie haben if versuche lt 6 ausgabe Haben Sie das Spiel bestochen oder gehackt else if versuche 6 ausgabe Gepfuscht geraten oder Gl ck gehabt else if versuche lt 12 ausgabe Sehr gut gemacht else if versuche lt 18 ausgabe Recht ordentliche Leistung else ausgabe Sie sollten noch ein wenig ben stop Im gleichen Frame finden Sie auf der Ebene karten
155. icken lt input type submit value Abschicken gt Viele Formulare enthalten neben dem Absendeknopf auch noch eine Schaltfl che zum Zur cksetzen der Eingaben Dieser wird folgenderma en erzeugt lt input type reset value Beschriftung gt Hier ein Beispiel mit der Beschriftung Zur cksetzen lt input type reset value Zur uuml cksetzen gt Am h ufigsten werden sicherlich einfache Texteingabefelder benutzt Ihre Syntax sieht so aus lt input type text name Feldname gt Der Feldname sollte im gesamten Formular einmalig sein Beim Absenden des For mulars wird der Inhalt des Textfeldes als Feldname Fingabetext versandt Neben name gibt es f r Textfelder noch einige interessante Zusatzattribute Mit value Vor gabetext k nnen Sie einen Text angeben der bereits beim Laden der Seite im Feld stehen soll size n bestimmt dass das Feld n Zeichen breit sein soll w hrend max lengtha n festlegt dass maximal n Zeichen eingegeben werden k nnen Das folgende Beispiel enth lt den Vorgabetext toll die Breite 30 Zeichen und definiert eine maxi male Eingabemenge von 20 Zeichen Wie finden Sie diese Seite lt input type text name meinung value toll size 30 maxlength 30 gt 288 Kapitel 9 Formulare erstellen Wenn Sie statt type text das Attribut type password angeben erhalten Sie bri gens ein Kennwortfeld Es besitzt dieselben Attribute und M glichkeiten wie ein gew hnliches Textfeld abe
156. ie immer ein ausf hrliches Praxisbei spiel eingebauten Elemente von Flash ber Eigenschaften und Methoden gesteuert werden Diese passive Objektorientierung haben Sie bereits im vorigen Kapitel kennen gelernt etwa bei der Steuerung von Movieclips Konstrukte wie meinClip gotoAndPlay 17 oder meinClip _x sind typische OO Elemente es handelt sich um einen Methodenaufruf beziehungsweise um den Zugriff auf eine Eigen schaft Auch eigene Klassen und Objekte konnte man entwerfen allerdings ber eine wenig eing ngige Syntax mit Funktionen Die entscheidende Neuerung in ActionScript 2 0 besteht daher in der neuen aufger umten Klassenschreibweise die zugleich einige Erwei terungen der Objektorientierungsf higkeiten mit sich bringt Ze u ActionScript war im Grunde von Anfang an objektorientiert da die kd Bitte beachten Sie dass es in diesem Kapitel weniger grafisch zugeht als bisher in diesem Buch Auch das Praxisbeispiel ist zwar beraus n tzlich erzeugt aber keine sichtbare Ausgabe Daf r k nnen Sie die dort vorgestellte Klasse nicht nur f r das FlashRock MusicShop Beispiel nutzen sondern auch f r Ihre eigenen Projekte 229 Objektorientierte Programmierung mit ActionScript Das Konzept der Objektorientierten Programmierung OOP wurde bereits in den 70er Jahren des vorigen Jahrhunderts ersonnen Es entstand wie so viele Errun genschaften der Computertechnik im Forschungslabor XEROX PARC in Palo Alto Ka
157. iegende Schaltfl che Ausw hlbar bestimmt ob Benutzer den Text ausw hlen und in die Zwischenablage kopieren k nnen Wenn Sie die n chste Schaltfl che Text als HTML wiedergeben aktivieren k nnen Sie der Textfeldvari ablen einfache HTML Codes zur Textformatierung zuweisen Die Schaltfl che Rah men um Text zeigen sorgt daf r dass das Textfeld mit sichtbarem Rand und wei em Hintergrund gezeichnet wird 294 Kapitel9 Formulare erstellen Var ist die wichtigste Einstellung f r ein dynamisches Textfeld Hier wird der Name der Variablen eingetragen mit der das Feld verbunden ist Sobald Sie dieser Variab len per ActionScript einen Wert zuweisen erscheint dieser automatisch im Feld Die Schaltfl che Einbetten ffnet den Dialog den Sie in Abbildung 9 3 sehen Wenn Sie f r das Textfeld eine individuelle Schriftart benutzen m chten dann m ssen Sie hier angeben welche Zeichen dieser Schrift mit dem SWF Film exportiert werden sollen Schlie lich kann Flash beim Export noch nicht wissen welche Zeichen hier sp ter einmal ben tigt werden Zeicheneinbettung w hlen Sie die Zeichens tze aus die eingebettet werden sollen Um mehrere S tze auszuw hlen bzw eine Auswahl aufzuheben klicken Sie bei gedr ckter Strg Taste auf die gew nschten S tze Alle 39477 Glyphen Z Japanisch Kana 318 Glyphen Japanisch Kanji O Ebene 1 3174 Glyphen Japanisch Alle 7517 Glyphen Koreanisch Einfaches Hangul 345
158. ielsweise true Die n chste Gruppe sind die so genannten Bit Operatoren Sie arbeiten zum Teil wie die logischen Operatoren betrachten dabei aber jedes einzelne Bit eines gespei cherten Wertes Hier die Bit Operatoren im berblick 3 4 Bitweise Und 8 setzt alle Bits auf 1 die in beiden verkn pften Werten 1 sind Beispielsweise ergibt 45 amp 62 den Wert 44 Verstehen k nnen Sie dies am bes ten wenn Sie die Werte in die Bin rdarstellung umwandeln 101101 amp 111110 101100 Bitweise Oder setzt diejenigen Bits auf 1 die in mindestens einem der beiden verkn pften Zahlen den Wert 1 haben Beispiel 45 62 63 Bin rdarstel lung 101101 111110 111111 Bitweise XOR Exklusiv Oder Zeichen bedeutet Entweder Oder Hier werden nur diejenigen Bits auf 1 gesetzt die in genau einem der verkn pften Werte 1 sind Das bliche Beispiel 45 62 19 101101 111110 010011 Bitweise Nicht verneint jedes einzelne Bit eines Wertes Beispiel 45 46 Dieses merkw rdige Ergebnis liegt an der speziellen Art und Weise wie posi tive und negative Zahlen gespeichert werden Das so genannte Zweierkomple ment setzt bei einer negativen Zahl das vorderste Bit Vorzeichenbit auf 1 negiert die restlichen Bits der entsprechenden positiven Zahl und addiert 1 dazu Bei angenommenen 8 Bit erg be dies f r das Beispiel 45 00101101 11010010 Die Bitverschiebung nach links lt lt verschiebt einen Wert um di
159. iese Weise k nnen Sie die Variablen an eine Webanwendung versenden und innerhalb des aktuellen Films eine Antwort emp fangen deshalb ist es in der Praxis sogar die g ngigere Methode zum Erstellen von Flash Formularen Im n chsten Kapitel wird dieses Thema vertieft Textfelder und Komponenten in Flash Das Kernst ck von Flash Formularen bilden wie bereits erw hnt Texteingabefel der sowie die seit Flash MX verf gbaren Komponenten Aus diesem Grund sollen diese Bedienelemente hier n her beleuchtet werden Dynamische Textfelder und Texteingabefelder Flash 8 bietet zwei verschiedene Arten von Textfeldern an Dynamische Textfelder k nnen nicht vom Benutzer editiert werden aber Sie k nnen ihren Inhalt per ActionScript bestimmen F r Formulare interessanter sind die Texteingabefelder in Textfelderund Komponenten in Flash 293 die Benutzer Text eintippen k nnen Beide Textfeldsorten werden mit Hilfe des Textwerkzeugs in der Werkzeugpalette erstellt das bereits in Kapitel 2 Zeichnen mit Flash vorgestellt wurde Sobald Sie das Textwerkzeug ausw hlen finden Sie in der Eigenschaftenleiste zahl reiche Einstellungen f r Text vor Auch diese Optionen wurden in Kapitel 2 beschrieben Im Pop up Men links oben k nnen Sie sich zwischen den drei Vari anten Statischer Text f r unver nderliche Beschriftungen Dynamischer Text per ActionScript nderbare Felder und Eingabetext Texteingabefelder entscheiden Dies sollten Si
160. iff auf Instanzmetho den erfolgt mittels Instanz Methode ein Beispiel w re der folgende Code der Methoden einer Auto Instanz aufruft Instanz erzeugen var a Auto new Auto 35 7 Methoden aufrufen a fahren 300 a tanken 10 F r Methoden sollten Sie stets einen Datentyp angeben Eine Methode die keinen Wert zur ckgibt erh lt dabei den speziellen Datentyp Void wie etwa die bereits ausf hrlich besprochenen Auto Methoden fahren und tanken In Einzelf llen kann es sinnvoll sein Methoden nicht als public sondern als private zu definieren n mlich immer dann wenn sie Hilfsaufgaben f r andere Methoden der Klasse wahrnehmen aber nicht von Instanzen aus aufgerufen werden sollen Das folgende Beispiel verlagert den Dreisatzterm zur Berechnung des Verbrauchs pro Strecke in eine private Methode private function verbrauchProStrecke km Number Number Nat rlich m sste die Methode fahren umgeschrieben werden um davon Gebrauch zu machen return km this verbrauch 100 public function fahren km Number Void Nur fahren falls das Benzin reicht if this verbrauchProStrecke km lt this tankFuellung kmStand km tankFuellung this verbrauchProStrecke km Eine noch allgemeinere Aufgabe besitzen statische Methoden oder Klassenmetho den Sie k nnen auch von au en als Element der Klasse aufgerufen werden ohne eine Instanz zu erzeugen Die im vorigen Kapitel angesproch
161. igen Sie einen Flash Film der auf das PHP Skript zugreift und diese Variablen l dt Am praktischsten ist es wenn Sie zwei dynamische Textfelder erstellen und ihnen die Variablennamen datum beziehungsweise zeit zuordnen dann brauchen Sie au er der loadVariablesNum Anweisung keinen weiteren Code mehr um das Ergebnis anzuzeigen Wenn Sie die SWF Datei in dasselbe Verzeich nis Ihrer Site ver ffentlichen wie das Skript gen gt dazu folgende Zeile loadVariablesNum zeit php 0 GET Sollte das Skript dagegen in einem anderen Verzeichnis liegen oder gar auf einem anderen Server ausgef hrt werden dann m ssen Sie seine URL entsprechend anpassen Das zweite Argument ist die von loadMovieNum bekannte Stufe wenn nur ein einzelner Hauptfilm beteiligt ist bleibt es bei der hier verwendeten 0 Die Methode schlie lich spielt f r das Laden der Variablen selbst keine Rolle Der Ser ver sendet sowohl auf POST als auch auf GET Anfragen eine gew hnliche HTTP Ant wort bei der der Header Content Type den Datentyp angibt w hrend die eigentlichen Daten im Body enthalten sind Die Angabe von POST oder GET bestimmt also nur auf welche Weise die Variablen Ihres Flash Films an die Server Anwendung gesendet werden sollen Mehr Kontrolle Die Klasse LoadVars Es gibt noch eine leistungsf higere Alternative zum Einsatz von loadvariablesNun Sie k nnen eine Instanz der Klasse LoadVars erstellen mit der sich das Laden sowie das Sende
162. igerma en bersichtlich Aber stellen Sie sich vor auf diese Weise sollten die Eigenschaften eines ganzen Fuhrparks bearbeitet werden Sie m ssten die Daten aller Fahrzeuge beispielsweise in Arrays verwahren und den Funktionen jeweils den Index des aktuellen Autos bergeben Hier nur ein abgespecktes Beispiel f r drei Autos mit tankFuellung maxTankFuellung und der Funktion tanken Eigenschaften der Autos var maxTankFuellung 30 40 50 Kapazit ten der Tanks var tankFuellung 10 10 10 Anfangs Tankf llungen var kmStand 0 Hier fehlen weitere Eigenschaften function tanken autoID 1 S Nur tanken falls die gew nschte Menge in den Tank passt f tankFuellung autoID 1 lt maxTankFuellung autoID tankFuellung autoID 1 m Hier fehlt die Funktion fahren function auskunft autoID trace Das Auto autoID hat tankFuellung autoID 1 im Tank Schleife zum Betanken aller Autos for i 0 i lt 3 i Anfangszustand auskunft i Je 10 1 tanken tanken i 10 Info auskunft i Die Ausgabe des Beispiels sieht so aus Das Auto O hat 10 1 im Tank Das Auto O hat 20 1 im Tank Das Auto 1 hat 10 1 im Tank Das Auto 1 hat 20 1 im Tank Das Auto 2 hat 10 1 im Tank Das Auto 2 hat 20 1 im Tank 232 Kapitel 7 ActionScript 2 0 Klassen Diese Variante ist wirklich nicht mehr bersichtlich Das ist aber gar nicht das
163. im n chsten Abschnitt erl utert Anhalten und Weiterspielen Die einfachsten Steueranweisungen sind play und stop Wenn Sie den Film an einer bestimmten Stelle anhalten m chten k nnen Sie die folgende Anweisung benutzen stop Wenn diese Anweisung im Skript eines Schl sselbildes steht h lt der Film automa tisch an der entsprechenden Stelle an Auf diese Weise erstellen Sie also ein Stand bild Wann immer Sie ein Men eine Info Seite oder hnliche statische Bildschirme erstellen m chten ist dies die passende L sung Um diesen Bildschirm wieder zu verlassen und den Film weiter abzuspielen wird die Anweisung play benutzt Sie k nnen sie beispielsweise einer Schaltfl che zuweisen 188 Kapitel 6 Interaktivit t durch ActionScript Hier eine einfache M glichkeit play und stop auszuprobieren 1 Erstellen Sie in einem neuen Film eine beliebige Animation 2 Legen Sie zwei Schaltfl chen mit den Beschriftungen Stop bzw Weiter an 3 Richten Sie eine neue Ebene namens buttons ein 4 Ziehen Sie die Schaltfl che Stop auf die B hne und weisen Sie ihr folgendes Skript zu on release stop 5 Ziehen Sie auch den Button Weiter auf die B hne er erh lt die folgenden Anweisungen on release play Wenn Sie diesen Film mittels Film testen ausprobieren werden Sie feststellen dass Sie die Animation jederzeit mit Stop unterbrechen und mit Weiter fortsetzen k nnen Sprungbefehle Mit play
164. in einer Variablen oder in einem komplexen Ausdruck steht Es kann eine lokale Datei oder eine externe URL sein Wenn Sie sich mit URLs wie sie zum Beispiel auch in HTML Hyperlinks benutzt werden noch nicht auskennen k n nen Sie im Kasten ber URLs in Kapitel 5 Flash Filme ver ffentlichen nachschlagen Angenommen zurzeit wird der Film menu swf abgespielt Er enth lt das mittels stop angehaltene Standbild eines Hauptmen s mit den beiden Schaltfl chen Katalog und Kontakt Sie sollen den aktuellen Film beim Anklicken durch die Filme katalog swf beziehungsweise kontakt swf ersetzen die beide im selben Verzeichnis liegen wie menu swf Zu diesem Zweck werden der Instanz der Katalog Schaltfl che folgende Anweisungen zugewiesen on release loadMovieNum katalog swf 0 Entsprechend erh lt die Schaltfl che Kontakt diese Anweisungen on release loadMovieNum kontakt swf 0 266 Kapitel 8 Mit ActionScript auf externe Daten zugreifen Die Stufenhierarchie der Flash Filme Das Laden anderer SWF Filme wird komplizierter aber auch interessanter wenn Sie h here Stufen als 0 angeben In diesem Fall berlagert der neu geladene Film alle Filme die auf niedrigeren Stufen liegen Damit verhalten sich die Stufen so hn lich wie die Ebenen innerhalb eines einzelnen Flash Films wobei jede Stufe einen kompletten Film enth lt Angenommen Sie m chten den Film popup swf auf Stufe 1 laden Dazu k nnen Sie folgen
165. in setzen In PHP geschieht dies mit Hilfe der Anweisung header wie bereits erw hnt darf vor dem anf nglichen PHP Block in dem dies geschieht kein einziges Zeichen stehen F gen Sie einfach folgende Zeile in Ihr Skript ein header Content type text plain Alternativ k nnen Sie brigens auch den von HTML Formularen bekannten Typ application x www form urlencoded benutzen Anschlie end k nnen Sie den Ausga bebefehl echo oder einfachen Text au erhalb von PHP Bl cken verwenden um eine Abfolge von Variablen in der Form var1 Wert1 amp var2 Wert2 amp auszugeben Die Werte der Variablen sollten dabei genau wie bei Formularfeldern URL codiert sein Zu diesem Zweck definiert PHP die Funktion urlencode wert Das folgende Komplettbeispiel bermittelt das aktuelle Datum in der Form 03 12 2005 und die Uhrzeit im Format 19 34 332 Kapitel 10 Interaktion mit Webserver Anwendungen lt php MIME Type text plain setzen header Content type text plain Datum und Uhrzeit formatieren jetzt time datum urlencode date d m Y jetzt zeit urlencode date H i jetzt Ausgabe echo datum datum amp zeit zeit gt Speichern Sie das Skript zum Beispiel unter dem Namen zeit php im Website Verzeichnis Ihres Webservers Zur Kontrolle k nnen Sie es in einem Browser aufru fen und erhalten eine Ausgabe wie diese datum 03 12 2005 amp zeit 19 3A34 Als N chstes ben t
166. iner Checkbox Gruppe sieht folgenderma en aus lt input type checkbox name gruppenname value feature1 gt lt input type checkbox name gruppenname value feature2 gt Im folgenden Beispiel kann ein Benutzer w hlen f r welche Angebote er sich inter essiert hier ist der Anbieter nat rlich auch an Mehrfachauswahlen interessiert Wof amp uuml r interessieren Sie sich besonders lt input type checkbox name int value agit gt Akustik Gitarren lt input type checkbox name int value egit gt E Gitarren lt input type checkbox name int value bass gt B amp auml sse lt input type checkbox name int value zubh gt Zubeh ouml r Wenn jemand B sse und Zubeh r ausw hlt wird Folgendes bermittelt int bass int zubh In Beispiel 9 1 sehen Sie den HTML Code eines Dokuments das ein Formular mit allen hier vorgestellten Elementen enth lt Damit Sie auch das Versenden auspro bieren k nnen ohne ein Serverskript zu benutzen ist die Action URL dieser Webformulare im berblick 289 Wert steht f r die aktuelle Seite selbst Wenn Sie das Formular abschicken sehen Sie die eingegebenen Werte als URL Anhang im Adressfeld Ihres Browsers Beispiel 9 1 Ein vollst ndiges HTML Formularbeispiel lt xml version 1 0 encoding IS0 8859 1 gt lt DOCTYPE html PUBLIC W3C DTD XHTML 1 0 Transitional EN http www w3 org TR xhtml1 DTD xhtml1 transitional dtd gt lt html xmins ht
167. irkung hat Sie k nnen allerdings Werkzeuge gt Syntax berpr fen oder die H kchen Schaltfl che in der Symbolleiste verwenden um die formale Kor rektheit des Codes zu berpr fen Objektorientierte Programmierung mit ActionScript 235 Bevor es mit Erkl rungen weitergeht soll die Klasse eingesetzt werden um objekt orientierte Autos zu erstellen und sie fahren und tanken zu lassen Speichern Sie die Klassendatei dazu unter dem Namen Auto as und erstellen Sie dann einen neuen Flash Film Geben Sie in der Aktionen Palette das folgende Skript f r das erste Bild ein function auskunft a Auto Void trace Tankf llung a getTankFuellung Kilometerstand a getKmStand var auto Auto new Auto 50 10 trace Anfangszustand auskunft auto auto fahren 250 trace Nach 250 km Fahrt auskunft auto auto tanken 10 trace Nach 10 1 Tanken auskunft auto Ein Flash Film der auf selbst definierte Klassen zur ckgreift muss a gespeichert werden bevor Sie Film testen verwenden standardm ig im gleichen Verzeichnis wie die as Dateien mit den Klassendefinitio nen Wenn Sie einen ungespeicherten Film testen wird die SWF Datei n mlich in einem Tempor r Verzeichnis erstellt so dass die Klassen nicht gefunden werden Dar ber erhalten Sie noch nicht einmal eine Fehlermeldung sondern es kommt kommentarlos zu Fehlfunktionen Die Ausgabe dieses Beispiels sieht fo
168. it 6 multipliziert das Ergebnis ist eine Flie kommazahl zwischen 0 und etwas weniger als 6 Durch Math ceil wird jeweils die n chsth here Ganzzahl gew hlt Diese liegt aufgrund der vorherigen Multiplikation im gew nschten Bereich zwischen 1 und 6 Hier einige weitere Funktionen und Konstanten der Klasse Math e Math floor rundet eine Flie kommazahl auf die n chstniedrigere Ganzzahl ab Math floor 5 3 wird 5 aber Math floor 5 8 ebenfalls e Math round rundet dagegen mathematisch korrekt Math round 5 3 ergibt 5 w hrend Math round 5 6 den Wert 6 hat e Math abs liefert den Betrag eines Wertes entfernt also das Vorzeichen ath abs 64 ist 64 Math abs 64 hat ebenfalls das Ergebnis 64 e Math sin Math cos und Math tan liefern den Sinus Cosinus bezie hungsweise Tangens eines Wertes Vorsicht Sie arbeiten im Bogenma Dies ist ein Kreisabschnitt auf dem Einheitskreis statt eines Winkels der ganze Kreis hat nicht den Wert 360 sondern 2 m e Math pow errechnet Potenzen Math pow 2 8 entspricht 2 hoch 8 und ergibt damit 256 e Math PI und Math E sind die mathematischen Konstanten m beziehungsweise e Eulersche Zahl Basis des nat rlichen Logarithmus Es ist kein Problem diese und jede andere for Schleife in eine while Schleife umzuwandeln var i 2 while i lt 10 trace i i 2 Hier als Abschluss des Themas Schleifen noch ein kleines Beispiel Es zei
169. ite lt php Function cgiParam kopieren oder einbetten Eintragsnummer vom Flash Film bernehmen Standardwert 1 eintrag cgiParam eintrag 1 Nerbindung zur MySQL Datenbank herstellen anpassen conn new mysqli 127 0 0 1 dbuser geheim guestbook Anzahl der Eintr ge ermitteln query conn gt query SELECT COUNT gb id FROM guest maxEintraege 1 if query gt num rows gt 0 list maxEintraege query gt fetch row eintrag anpassen falls zu gro oder zu klein if eintrag lt 1 eintrag 1 if eintrag gt maxEintraege eintrag maxEintraege Eintrag aus der Datenbank lesen query conn query SELECT gb_user gb user gb instrument gb_ subject gb_message FROM guest WHERE gb _id eintrag Praxisbeispiel Bestellannahme und G stebuch 349 list user mail instrument subject message query gt fetch_row result Datentyp nur Text setzen header Content type text plain Alle Variablen URL codieren user urlencode user mail urlencode mail instrument urlencode instrument subject urlencode subject message urlencode message Ausgabe an den Flash Film echo user user amp mail mail instrument instrument subject subject message me ssagedeintrag eintrag gt Neue Eintr ge vornehmen Unter dem Schl sselbild write finden Sie den Teil
170. iter vorn im Zeichensatz steht Daraus ergeben sich einige Faustregeln Ziffern und die meisten Satzzeichen sind kleiner als Buchstaben Gro buchstaben sind kleiner als Kleinbuchstaben Umlaute und andere diakritische Zeichen sind gr er als alle Buchstaben Wenn Sie einen bestehenden String nach rechts verl ngern ist die l ngere Fas sung immer gr er als die k rzere Daraus ergeben sich etwa folgende Beispiele ABC lt abc ergibt true abc lt ergibt true 123 lt ABC ergibt true a lt Z ergibt false K ln lt K nig ergibt true K ln lt K lner ergibt true Die n chste wichtige Gruppe sind die logischen Operatoren Sie werden oft benutzt um Vergleichsoperationen miteinander zu verkn pfen Die folgenden drei Operato ren sind definiert ActionScript Grundelemente 201 Logisches Und Ausdruck1 amp amp Ausdruck2 ist nur wahr wenn beide Ausdr cke wahr sind Beispielsweise hat2 lt 3 8 amp 4 gt 3 den Wert true w hrend 2 lt 7 88 3 gt 4 das Ergebnis false hat Logisches Oder Ausdruck1 Ausdruck2 ist wahr wenn mindestens einer der beiden Ausdr cke wahr ist 2 lt 3 3 gt 4 hat also den Wert true w hrend 3 4 4 gt 5 das Ergebnis false liefert Logisches Nicht Wenn Sie einem Ausdruck ein voranstellen wird er verneint true und Zahlenwerte au er 0 werden false w hrend false und 0 den Wert true annehmen 3 lt 2 ist also beisp
171. iterale Zeichenketten Textbl cke e Boolesche Literale true und false f r Wahrheitswerte e undefined der Wert einer undefinierten Variablen e null ein leeres Objekt F r die Angabe von Frames Objektpositionen und gr en sowie f r Berechnun gen aller Art werden Zahlen ben tigt Je nach Bedarf kann es sich dabei um ganze ActionScript Grundelemente 193 Zahlen englisch Integer oder Flie kommazahlen handeln Integer Literale k nnen in drei verschiedenen Zahlenformaten angegeben werden e Einfache Zahlen wie 7 2048 oder 678 werden dezimal interpretiert e Durch eine vorangestellte o wird die Zahl oktal geh rt also zum Achtersystem Hier gibt es nur die Ziffern O bis 7 der Wert 8 wird als 10 dargestellt und so weiter Beispielsweise entspricht 077 dem dezimalen Wert 63 1000 bedeutet 512 und 432 steht f r 282 e Wenn Sie 0x vor eine Zahl setzen wird sie dem Hexadezimalsystem Sechzeh nersystem zugerechnet Hier gibt es sechzehn verschiedene Ziffern 0 9 wie gehabt zus tzlich stehen die Buchstaben A F oder auch a f f r 10 bis 15 Die Stellen versechzehnfachen ihren Wert nach links hin oxF ist also 15 0x10 steht f r 16 0xFo bedeutet 240 und OxABC ist 2748 Dezimalbr che werden in Programmiersprachen als Flie kommazahlen englisch Floating Point Numbers bezeichnet Da der Computer jede Zahl in einem Speicherbereich mit einer bestimmten Maximalgr e ablegen muss kennt er nur abbrechende
172. k nnen dadurch zum Beispiel mit Mail oder Webservern kommu nizieren Ein sehr nettes Spielzeug ist schlie lich die Methode Sound computeSpectrum Sie liefert ein Array mit dem Frequenzspektrum aller derzeit abgespielten Sounds zur ck Dies erm glicht die Programmierung beliebiger Sound Visualisierungselemente Praxisbeispiel Eine Komfort Datumsklasse Wie die meisten Programmiersprachen enth lt auch ActionScript die M glichkeit auf die Systemuhr des Computers zuzugreifen und so Datum und Uhrzeit auszule sen Dazu dient die ECMAScript Standardklasse Date die zahlreiche Methoden zum Auslesen der einzelnen Datums und Uhrzeitkomponenten Tag Monat Stunde Minute und so weiter enth lt Um sie zu benutzen m ssen Sie zun chst ein Objekt dieser Klasse erstellen var d new Date Dieses Objekt hier hei t es d speichert den aktuellen Zeitpunkt gem System uhr es l uft nicht selbst wie eine Uhr weiter Es bietet Ihnen unter anderem fol gende Methoden e d getFullYear vierstellige Jahreszahl e d getMonth Monat von O f r Januar bis 11 f r Dezember e d getDate Tag im Monat diesmal korrekt von 1 bis 31 256 Kapitel 7 ActionScript 2 0 Klassen e d getDay numerischer Wochentag 0 Sonntag 1 Montag 6 Samstag e d getHours Stunde 0 bis 23 e d getMinutes Minute 0 bis 59 e d getSeconds Sekunde 0 bis 59 e d toString das komplette formatier
173. l Kofferverst rker kab Gitarrenkabel und buch Lehrbuch Rock Gitarre Klicken Sie als N chstes das Schl sselbild auf der Ebene actions im aktuellen Frame an Geben Sie hier in der Aktionen Palette die folgende Bildaktion ein stop Aktivieren Sie nun auf der B hne die Schaltfl che Weiter Sie erh lt das folgende Skript on release gotoAndStop daten Wenn Sie alle Arbeiten im Frame artikel abgeschlossen haben sollte es so aussehen wie in Abbildung 9 6 Als N chstes m ssen die Textfelder und Skripte im Frame daten erstellt werden Hier werden die pers nlichen Daten zur Bestellung eingegeben daneben wird die Zwischensumme der Bestellung angezeigt Erstellen Sie als Erstes neben der Beschriftung Zwischensumme ein Textfeld vom Typ Dynamischer Text Weisen Sie diesem den Variablennamen zsumme zu Stellen Sie die Schriftart Arial die Gr e 16 Punkt und die Farbe Gelb FFFFOO ein die ses Feld soll keinen sichtbaren Rahmen haben Klicken Sie die Schaltfl che Zeichen an W hlen Sie darin den Eintrag Ziffern 0 9 und geben Sie unter Diese Zeichen einschlie en zus tzlich die drei Zeichen und ein F gen Sie nun einige Felder vom Typ Eingabetext ein Arial 14 Punkt schwarz mit Rahmen Variablenname kunde f r das Feld neben der Beschriftung Name adr f r Stra e plz PLZ ort Ort und nr Kontonummer Unter Zeichen sollten Sie f r alle diese Felder mit gedr ckter STRG bezie
174. lay 3 3 else stop Aktuelle Auswahl E action Bild 40 E f Senet E action Bild 2 E action Bild 3 Ra E action Bild 40 E action Bild so zl Abbildung 6 2 Die Aktionen Palette im berblick Elemente der Aktionen Palette Das Fenster ist in drei Hauptbereiche unterteilt Links oben k nnen Sie aus einer Baumstruktur s mtliche Funktionen Objekte und Operationen ausw hlen die ActionScript zu bieten hat Sie k nnen sie durch Ziehen oder per Doppelklick also ohne Tipparbeit in Ihre Skripte einf gen Die Aktionen Palette 177 brigens gibt es eine noch schnellere M glichkeit h ufige Anweisungen in ein Skript einzuf gen Das Bedienfeld akzeptiert zahlreiche Esc Tastenkombinationen Daf r m ssen Sie zuerst die Esc Taste dr cken und anschlie end zwei Buchstaben eintippen Zum Beispiel f gt Esc G P die Anweisung gotoAndPlay ein Esc S T erzeugt die Funktion stop Wenn Sie diese K rzel erlernen m chten sollten Sie im dem Optionsmen des Aktionen Bedienfelds ganz rechts oben die Einstellung Esc Shortcut Keys aktivieren Links unten finden Sie eine ebenfalls hierarchisch unterteilte bersicht ber s mtliche Skripte die Bildern oder Objekten des aktuellen Films zugewiesen wurden Hier k n nen Sie durch einfaches Klicken zwischen den verschiedenen Skripten des Dokuments hin und herspringen Eine hnliche Aufgabe er
175. lgenden Anweisungen verwenden unloadMovie _root box globale Funktion _root box unloadMovie Movieclip Methode Filme vorausladen Normalerweise arbeitet Flash im Streaming Betrieb Sobald gen gend Daten herun tergeladen wurden um das n chste Frame anzuzeigen wird es abgespielt In den meisten F llen ist das auch in Ordnung es ist sogar ein besonderer Vorteil gegen ber Formaten die vor dem Abspielen stets komplett heruntergeladen werden m s sen In Einzelf llen kann es allerdings vorkommen dass Inhalte zu datenintensiv f r eine durchschnittliche Netzwerkbandbreite sind Wenn Sie dies zum Beispiel ber die Mittel die in Kapitel 5 vorgestellt wurden festgestellt haben sollten Sie den entsprechenden Teil des Films vorausladen Weitere Filmeladen 269 Sowohl der Hauptfilm als auch jeder Movieclip verf gen ber die Eigenschaften _framesloaded und totalframes die die Anzahl der bereits geladenen beziehungs weise die Gesamtzahl der Bilder angeben Alternativ lassen sich die Methoden get BytesLoaded und getBytesTotal einsetzen die dieselbe Aufgabe f r die Bytes eines Films oder Movieclips erledigen Angenommen Sie m chten warten bis der gesamte Film geladen ist F gen Sie dazu vor der bisherigen Anfangsszene eine neue Szene namens loader ein Weisen Sie Bild 2 dieser Szene folgendes Bildskript zu stop Setzen Sie zuletzt einen Steuerclip Instanz eines leeren Movieclips auf die B hne Ver
176. lgenderma en aus Anfangszustand Tankf llung 50 Kilometerstand 0 Nach 250 km Fahrt Tankf llung 25 Kilometerstand 250 Nach 10 1 Tanken Tankf llung 35 Kilometerstand 250 Die Klasse selbst wird von folgendem Konstrukt umschlossen class Auto Klassencode Die typische Reihenfolge innerhalb des Blocks mit den Klassenelementen ist 1 Deklaration der Eigenschaftsvariablen 2 Definition des Konstruktors 3 Definition der Methoden 236 Kapitel 7 ActionScript 2 0 Klassen Eigenschaften sind im Grunde v llig normale Variablen wie Sie sie bereits im vori gen Kapitel kennen gelernt haben Wenn Sie objektorientiert in ActionScript 2 0 programmieren sollten Sie bevorzugt von festen Datentypen Gebrauch machen die Eigenschaften des vorliegenden Beispiels sind etwa alle numerisch so dass sie den Typ Number haben private var kmStand Number private var tankFuellung Number private var maxTankFuellung Number private var verbrauch Number Das Schl sselwort private bestimmt die Geheimhaltungsstufe der Eigenschaften Sie sind nur innerhalb des Klassenblocks selbst sichtbar ein Zugriff von au en ist nicht m glich Betrachten Sie das folgende ung ltige Beispiel var a Auto new Auto 35 6 trace a maxTankFuellung Das Ergebnis dieses Versuchs ist eine Fehlermeldung wie diese Fehler Szene Szene 1 Ebene Ebene 1 Bild 1 Zeile 4 Keine Eigenschaft mit dem Namen maxTankFuellung vorhande
177. lgendes ein mysql gt CREATE DATABASE musik Query OK 1 row affected 0 24 sec mysql gt use musik Database changed mysql gt CREATE TABLE interpreten gt int_nr INT AUTO_INCREMENT PRIMARY KEY int_name VARCHAR 40 Query OK O rows affected 0 28 sec mysql gt CREATE TABLE cds cd_nr INT AUTO_INCREMENT PRIMARY KEY gt cd_interpret INT cd_titel VARCHAR 40 cd_jahr YEAR gt cd_songs INT Query OK O rows affected 0 07 sec Wie Sie sehen besitzt jedes Feld einen festgelegten Datentyp Hier werden INT Ganzzahl VARCHAR n Text mit maximal n Zeichen L nge und YEAR Jahreszahl verwendet int_nr beziehungsweise cd_nr sind die Prim rschl ssel PRIMARY KEY der beiden Tabellen der Zusatz AUTO_INCREMENT besagt dass sie automatisch durch nummeriert werden sollen F gen Sie nun mit den beiden folgenden Zeilen Beispielwerte in die Tabelle inter preten ein mysql gt INSERT INTO interpreten int_name VALUES Metallica Query OK 1 row affected 0 08 sec mysql gt INSERT INTO interpreten int_name VALUES Extreme Query OK 1 row affected 0 06 sec Nun k nnen Sie s mtliche Inhalte der Tabelle interpreten ausw hlen damit diese angezeigt wird mysql gt SELECT FROM interpreten int_nr int_name 1 Metallica 2 Extreme 2 rows in set 0 09 sec Dies zeigt die automatisch eingef gten Nummern an die Sie b
178. lifornien Dort wurde schon vor 30 Jahren eine Arbeitsumgebung entwi ckelt die erst seit den 90er Jahren allgemein verbreitet ist vernetzte Arbeitsplatz rechner mit grafischer Benutzeroberfl che inklusive Maus und WYSIWYG Dokumentenbearbeitung Zur Implementierung dieses Systems entwarfen die Forscher eine Programmierspra che namens Smalltalk und zugleich eine v llig neue Arbeitsweise f r die Software entwicklung Die objektorientierte Programmierung wird erg nzt durch die Verfahren der objektorientierten Analyse OOA zur Beschreibung der gew nsch ten Ergebnisse und des objektorientierten Designs OOD f r den Entwurf der Soft warearchitektur Smalltalk ist leicht zu lernen besitzt eine elegante und schlanke Syntax und ist per fekt in eine Arbeitsumgebung eingepasst die sich auf Knopfdruck beliebig umpro grammieren l sst Dennoch wurde der objektorientierte Ansatz erst viel sp ter popul r n mlich durch die Erweiterung der klassischen Sprache C zum objekt orientierten C Aufgrund dieser Erfahrungen wurde 1995 die bisher popul rste OOP Sprache Java entwickelt im Jahr 2000 folgte eine hnliche Sprache von Microsoft namens C Das Grundkonzept der objektorientierten Programmiersprachen hei t Kapselung Dabei werden die gespeicherten Datenstrukturen und die Funktionen zur Manipu lation derselben zusammengefasst das Ergebnis sind die Objekte die genau wie Gegenst nde in der realen Welt selbstst ndig agieren k
179. lt sich um ein sehr leicht zu installierendes vorkonfiguriertes B ndel der neuesten Versionen von Apache PHP MySQL und weite rer interessanter Server Software das f r Windows Linux und Sun Solaris angeboten wird u Wenn Sie m chten k nnen Sie die in den nachfolgenden Abschnitten Apache installieren und konfigurieren Der Webserver Apache wird nach wie vor in den Versionen 1 3 und 2 x gepflegt wobei nur Apache 2 um neue Funktionen erg nzt wird W hrend bei vielen Hos ting Diensten noch die Version 1 3 installiert ist sollten Sie f r eine Neuinstallation die modernere und leistungsf higere Version 2 verwenden Sie finden die aktuelle Version 2 auf der CD zum Buch und zwar in zwei Varianten Installer Paket Ver sion 2 0 55 f r Windows und Quellcode Paket Version 2 2 0 f r UNIX Systeme zum Beispiel Mac OS X oder Linux Eine PHP Testumgebung einrichten 313 In diesem Unterabschnitt wird in K rze beschrieben wie Sie Apache 2 auf Ihrem System installieren und f r die lokale Auslieferung von HTML Dokumenten und PHP Anwendungen konfigurieren k nnen Weitere Informationen erhalten Sie in der umfangreichen Online Dokumentation http httpd apache org docs 2 2 die standardm ig auch mit Apache selbst auf Ihrem System installiert wird Dar ber hinaus kann ich Ihnen mein Buch Apache 2 2 Auflage Bonn 2006 Galileo Press empfehlen auf der zugeh rigen Website http buecher lingoworld de apache2 fin den Sie eb
180. m Beispiel mit konstanten Werten ist das Abfangen von Aus nahmen nat rlich wenn Sie unvorhersagbare Werte verwenden beispielsweise Benutzereingaben oder Zufallszahlen Ausblick ActionScript 3 0 Die Flash Version 9 0 soll mit der n chsten Generation von ActionScript ausgestattet werden Ein erster Entwurf von ActionScript 3 0 existiert bereits Ein Compiler daf r ist in der Entwickler Vorschau von Macro media Adobe FlexBuilder 2 0 eingebaut diese professionelle und in der k nftigen Endversion sehr teure Serversoftware enth lt au erdem den Flash Player 8 5 der ActionScript 3 Code ausf hren kann Die Beta Version von Flex 2 k nnen Sie unter http www macromedia com go labs_flex2_downloads he runterladen Ga Br Es w rde zu weit f hren hier praktisch auf die Neuerungen von ActionScript 3 ein zugehen Wenn Sie Interesse haben halten Sie Ausschau nach dem Buch Essential ActionScript 3 0 von Colin Moock das demn chst bei O Reilly erscheint Bis dahin k nnen Sie schon einmal einen Blick in das in Arbeit befindliche Flex Handbuch Programming ActionScript 3 0 http www macromedia com go programmingAS3 sowie in die ActionScript 3 Referenz http www macromedia com go AS3LR wer fen Hier finden Sie nur einen kurzen berblick ber einige wichtige Funktionen der neuen Version erg nzt durch einige Beispiele gt 254 Kapitel 7 ActionScript 2 0 Klassen Eine der wichtigsten Neuerungen i
181. m Klassen ableiten als auch beliebig breit von jeder Klasse k nnen beliebig viele Klassen direkt abgeleitet werden Als Beispiel sehen Sie im Folgenden noch eine Erweiterung der Klasse LKW AnhaengerLKW sowie eine weitere Ableitung von Auto namens PKW Die resultierende Klassenhierarchie l sst sich durch ein UML Klassendiagramm wie in Abbildung 7 1 darstellen LKW PKW AnhaengerLKW Abbildung 7 1 UML Klassendiagramm der Klasse Auto und ihrer Ableitungen Hier zun chst die Klasse AnhaengerLku die eine Boolean Eigenschaft namens anhaen ger und entsprechende Methoden hinzuf gt class AnhaengerLkW extends LKW Neue Eigenschaft Anh nger private var anhaenger Boolean Konstruktor public function AnhaengerLKW m Number v Number 1 Number LKW Konstruktor aufrufen super m v 1 Anh nger ist standardm ig nicht angeh ngt this anhaenger false 250 Kapitel 7 ActionScript 2 0 Klassen Setter zum An Abh ngen des Anh ngers public function setAnhaenger a Boolean Void this anhaenger a Getter zum Ermitteln des Anh nger Status public funciton getAnhaenger Boolean return this anhaenger Die von Auto abgeleitete Klasse PKW definiert eine feste Anzahl von Sitzpl tzen sowie eine variable Insassenzahl class PKW extends Auto Neue Eigenschaften private var sitze Number private var insassen Number Konstruktor public
182. m Schl sselbildsymbol in der Zeitleiste weist darauf hin dass das Schl sselbild ActionScript Anweisungen enth lt Erstellen Sie in Bild 3 auf der Ebene action ein weiteres Schl sselbild Weisen Sie ihm folgende ActionScript Anweisung zu turns Dies erh ht den Wert von turns um 1 genau diese bei jedem Durchlauf ausge f hrte Anweisung macht turns zur Z hlervariablen Erstellen Sie auf der Ebene animation eine beliebige Animationssequenz die von Frame 3 bis 40 reicht Eine einfache Tweening Animation gen gt F gen Sie auf der Ebene action in Frame 40 ein Schl sselbild ein Erstellen Sie im Bedienfeld Aktionen folgende Anweisungen f r dieses Frame if turns lt 3 gotoAndPlay 3 else stop Diese Anweisungsfolge ist eine Fallentscheidung Wenn if der Wert von turns noch kleiner als 3 ist springt der Film zu Frame 3 Dort beginnt die Animationsse quenz von Neuem und turns wird wieder um 1 erh ht Die Funktion gotoAndPlay springt zum angegebenen Bild und spielt die Zeitleiste von dort aus ab Wenn turns dagegen nicht kleiner als 3 ist else h lt der Film an der aktuellen Stelle an F r Letzteres ist die Funktion stop zust ndig Als N chstes ben tigen Sie zwei Schaltfl chen W hlen Sie jeweils Einf gen gt Neues Symbol oder dr cken Sie STRG F8 um diese Symbole zu erstellen Geben Sie den Symbolen die Namen nochmal und ende Stellen Sie unter Verhalten den Typ Schaltfl che ein Zeichne
183. men siteInfo zu Stellen Sie im Komponenten Inspektor die Eigenschaft editable auf true das bedeutet dass neben der Auswahl der vorge fertigten Eintr ge auch neuer Text eingetippt werden kann Klicken Sie anschlie end rechts im Feld der Eigenschaft labels auf das kleine Lupensymbol Es erscheint der Dialog Werte geben Sie hier mit Hilfe der Schaltfl che folgende Texte ein Zeitschriftenwerbung Online Werbung Andere Website und Pers nliche Empfehlung Schlie lich wird noch eine Komponente vom Typ Button ben tigt Weisen Sie ihr ber den Komponenten Inspektor das Label Abschicken zu Anschlie end erh lt die Instanz folgendes Skript on click RadioButton Auswahl ausgeben trace Ihr Interesse root interesse selectedData ComboBox Text ausgeben trace Ihr Kontakt root sitelnfo text Wenn Sie vorhaben die Benutzerauswahl aus einer Komponente mit einem Formular an ein serverseitiges Skript zu versenden dann m s sen Sie diese Auswahl in einer normalen Variablen speichern Bei spielsweise k nnten Sie die RadioButton Auswahl aus dem obigen Beispiel folgenderma en behandeln um sie als Formularvariable namens instr zu verschicken var instr root interesse selectedData Praxisbeispiel Ein Bestellformular Damit die Site des FlashRock Music Shop tats chlich zum echten Online Shop wird muss sie nat rlich ein Bestellformular enthalten Deshalb ist das Praxisbei spiel dieses Kapitels die Erstellung d
184. mit einer solchen URL benutzen k nnen Ihre Flash Filme mit JavaScript Anwendungen kommunizieren Das folgende Beispiel weist den Browser an ein kleines Alarmfenster mit der Meldung Hallo hier Flash anzuzeigen getURL javascript alert Hallo hier Flash Wie der Aufruf der Methode alert zeigt ist die JavaScript Grundsyntax mit der jenigen von ActionScript identisch Auch alle anderen Sprachgrundlagen Variab len Funktionen Kontrollstrukturen und so weiter funktionieren genau gleich Das n chste Beispiel ruft eine selbst definierte Funktion auf F gen Sie zun chst ber dem Abschluss Tag lt head gt des HTML Dokuments in das Sie den aufrufen den Flash Film hineinladen diese Zeilen ein lt script language JavaScript type text javascript gt function popupFenster Werbe Pop up ffnen var win open werbung html toolbars 0 menubar 0 location 0 directories 0 status 0 width 480 height 360 Bildschirm messen var sx screen width var sy screen height Pop up in der Mitte platzieren win moveTo sx 480 2 sy 360 2 lt script gt Web Links mit getURL 273 Die JavaScript Methode open URL Ziel Name Feature Liste ffnet ein neues Browserfenster in das die angegebene URL geladen wird die Feature Liste bestimmt die Ausstattung und die Gr e des Fensters Die Methode moveTo ver schiebt das Fenster anschlie end genau in die Bildschirmmitte
185. mmern weglas sen wenn er nur eine Anweisung umfassen soll In manchen F llen erfolgt die berpr fung einer weiteren Bedingung falls die erste Bedingung nicht zutrifft So entsteht ein verschachtelter Block in der Form if else if else Das folgende Beispiel nimmt bei unterschiedlichen Punktzahlen in einem Spiel verschiedene Wertungen vor if punkte lt 100 bewertung Sie sollten noch ben else if punkte lt 200 bewertung Na ja else if punkte lt 500 bewertung Schon ganz nett else bewertung Sie haben geschummelt oder Da die berpr fungen hier einen Fall nach dem anderen ausschlie en k nnen Sie sich beim letzten else ein weiteres if sparen hier kann punkte nur gr er oder gleich 500 sein Wenn Sie keine Wertebereiche sondern eine Reihe verschiedener Einzelwerte ber pr fen m chten k nnen Sie auch die n tzliche switch case Fallentscheidung ver wenden Ihre grundlegende Syntax sieht so aus switch Variable case Wert1 Anweisung en break case Wert2 Anweisung en break default Anweisung en 206 Kapitel 6 Interaktivit t durch ActionScript Die Variable wird jeweils mit den einzelnen case Werten verglichen Falls sie mit einem dieser Werte bereinstimmt wird der Block ab dieser Stelle ausgef hrt Stan dardm ig werden alle Anweisungen bis zum Ende des Blocks abgearbeitet da dies meist nicht gew nscht ist steht in d
186. n trace a maxTankFuellung Die Eigenschaft ist nach au en in Bezug auf eine Instanz der Klasse Auto gar nicht bekannt Eines der Ziele der Kapselung den Zugriff auf die Datenstruktur nur noch durch offizielle kontrollierte Schnittstellen zu erlauben wurde offensichtlich erreicht Der Konstruktor und die Methoden besitzen dagegen die Geheimhaltungsstufe public da sie von au en verf gbar sein sollen Genau sie sind eben die definierten Schnittstellen zur Datenstruktur Der Konstruktor der Klasse Auto nimmt zwei Parameter entgegen die maximale Tankf llung und den Verbrauch in pro 100 km Anschlie end weist er allen vier Eigenschaften ihre Anfangswerte zu public function Auto m Number v Number this maxTankFuellung m this verbrauch v Zu Anfang km Stand 0 Tank voll this kmStand 0 this tankFuellung this maxTankFuellung Wie Sie sehen werden der maximalen Tankf llung und dem Verbrauch die berge benen Werte zugewiesen Der Kilometerstand wird auf 0 die aktuelle Tankf llung auf das erlaubte Maximum gesetzt Ein Konstruktor besitzt keine Datentypangabe da der R ckgabewert eines new Aufrufs eine Instanz der Klasse selbst ist Objektorientierte Programmierung mit ActionScript 237 Das Schl sselwort this haben Sie bereits im Zusammenhang mit Movieclips ken nen gelernt Auch in einer Klassendefinition bezieht es sich nicht etwa auf die Klasse selbst die Vorlage sondern auf die
187. n Bild 40 if turns lt 3 f Fallentscheidung Wenn turns noch kleiner als 3 ist bei Bild 3 gotoAndPlay 3 weiterspielen sonst anhalten else stop 176 Kapitel 6 Interaktivit t durch ActionScript Tabelle 6 1 ActionScript Anweisungen des ersten Beispiels im berblick Fortsetzung Position Anweisung Erl uterung Button nochmal on release Nach Klick und Loslassen zu Bild 2 springen gotoAndStop 2 Button ende on release Nach Klick und Loslassen zu Bild 50 springen gotoAndStop 50 Bild 50 stop Film anhalten optional da Sprung hierhin mit gotoAndStop erfolgt und bereits stoppt Die Aktionen Palette Im obigen Beispiel wurde das Bedienfeld Aktionen einfach ohne n here Erl uterung verwendet Dabei besitzt es einige interessante Eigenschaften die wichtigsten von ihnen sollen hier kurz angesprochen werden Einige erweiterte F higkeiten die dem Debugging der Fehlersuche in l ngeren Skripten dienen gehen dagegen ber den Rahmen dieses Buches hinaus Abbildung 6 2 zeigt das Bedienfeld zun chst einmal im berblick xl v Aktionen Bild ActionScript 1 0 amp 2 0 fad A Globale Funktionen A Globale Eigenschaften A Operatoren A Anweisungen ZI Actionscript 2 0 Klassen Compiler Direktiven ZI Konstanten a Typen Nicht mehr verwendet A Datenkomponenten ZI Komponenten ZI Bildschirme E Index 2PBOVERER A Skipthilfe 1 if turns lt 3 y gotoAndP
188. n Film auf einem bestimmten Frame anhalten m chten Wenn Sie einer Schaltfl chen Instanz Code zuweisen bestimmt dieser was bei einem Klick auf die Schaltfl che geschehen soll Movieclip Instanzen reagieren dagegen auf diverse andere Ereignisse zum Beispiel k nnen Sie ein Skript schreiben das immer wieder ausgef hrt wird wenn Sie das Ereignis enter Frame verarbeiten oder ber das Ereignis load eine einmalige Aktion beim Auftreten der Instanz in Gang setzen Der vierte m gliche Speicherort f r ActionScript befin det sich au erhalb der Flash Filme selbst ActionScript 2 0 Klassen m ssen in exter nen as Dateien gespeichert werden dies wird im n chsten Kapitel besprochen Ein erstes Beispiel Nat rlich endet auch dieses Kapitel wieder mit einem Praxisteil der die Site des FlashRock Music Shop weiterf hrt Allerdings lassen sich auch die Grundlagen einer Programmiersprache am besten anhand von Beispielen vermitteln so dass Sie in diesem Kapitel auch einige unabh ngige Einzelbeispiele finden Das allererste einfache Beispiel zeigt wie ActionScript den linearen Ablauf der Zeit leiste unterbricht und den Film interaktiv macht Eine Animation wird weder end los wiederholt noch wird sie nach einem Durchlauf gestoppt Stattdessen wird sie genau dreimal abgespielt anschlie end werden zwei Schaltfl chen angezeigt die entweder drei neue Durchl ufe starten oder zu einem Abschlussbild springen in dem der Film anh lt Schemati
189. n Macromedia Inc Bibliografische Information Der Deutschen Bibliothek Die Deutsche Bibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie detaillierte bibliografische Daten sind im Internet ber http dnb ddb de abrufbar Lektorat Inken Kiupel K ln Fachgutachten Ralf Bokelberg K ln Korrektorat Petra Bromand D sseldorf Satz Tim Mergemeier reemers publishing services gmbh Krefeld www reemers de Umschlaggestaltung Hanna Dyer amp Ellie Volckhausen Boston Produktion Andrea Mi K ln Belichtung Druck und buchbinderische Verarbeitung Druckerei K sel Krugzell www koeselbuch de ISBN 10 3 89721 450 4 ISBN 13 978 3 89721 450 7 Dieses Buch ist auf 100 chlorfrei gebleichtem Papier gedruckt In diesem Kapitel KAPITEL 6 Interaktivit t durch Die Aktionen Palette s ActionScript Grundelemente Act l 0 n S cr pt e Movieclips steuern e Praxisbeispiel Navigation interaktive Demo und Spiel Bender Ich hatte einen furchtbaren Traum Einsen und Nullen berall Und ich dachte ich h tte ne Zwei gesehen Fry Ach Bender das war doch nur ein Traum So was wie Zweien gibt es gar nicht Dialog aus Futurama In den bisherigen Kapiteln haben Sie einen guten berblick ber die Designer Aspekte von Flash erhalten und m chtige Werkzeuge zum Zeichnen sowie f r die Animation und Medienintegration kennen gelernt All diese Hilfsmittel machen Flash zur e
190. n Sie Haltepunkte setzen um die Ausf hrung des ActionScript Codes an bestimmten Stellen zu kontrollieren e Skripthilfe STRG Umschalt E Aktiviert das dialoggesteuerte Hinzuf gen von ActionScript Elementen siehe unten Das Optionsmen des Bedienfelds ganz rechts oben verf gt ber weitere interes sante Optionen Soweit sie nicht bereits als Elemente der Symbolleiste beschrieben wurden sind dies folgende e Gehe zu Zeile STRG G springt sofort zur eingegebenen Zeilennummer e Skript importieren STRG Umschalt I importiert ActionScript Code f r den aktuellen Kontext aus einer externen as Datei Skript exportieren STRG Umschalt X speichert den Code aus dem aktu ellen Fenster als externe ActionScript Datei e Esc Shortcut Keys aktiviert beziehungsweise deaktiviert die Ansicht der bereits beschriebenen Befehlsk rzel mit der Esc Taste Versteckte Zeichen STRG Umschalt 8 zeigt Leerzeichen Zeilenumbr che Tabulatoren und so weiter durch Hilfssonderzeichen an Die Aktionen Palette 179 e Zeilennummern STRG Umschalt L schaltet die praktische Anzeige der Skript Zeilennummern ein beziehungsweise aus e Zeilenumbruch STRG Umschalt W sorgt daf r dass zu lange Skriptzei len im Fenster umbrochen werden Die Skripthilfe F r weniger erfahrene Flash Benutzer bietet die Skripthilfe die M glichkeit die Parameter von ActionScript Anweisungen im Dialogbetrieb auszuw hlen statt manuell einzug
191. n Sie dagegen mittels colorObjekt getTransform ra colorObjekt getTransform rb usw zugreifen Movieclip Instanzaktionen Weiter oben wurde bereits erw hnt dass Sie auch einer Movieclip Instanz hnlich wie einer Schaltfl che ein Skript zuweisen k nnen In einem solchen Skript wird das spezielle Konstrukt onClipEvent benutzt das auf zahlreiche Ereignisse reagie 218 Kapitel 6 Interaktivit t durch ActionScript ren kann Es ist empfehlenswert solche Aktionen nicht unbedingt einem existieren den Movieclip zuzuweisen der bereits eine eigene Aufgabe erf llt Stattdessen sollten Sie einen leeren Movieclip erstellen und auf die B hne oder in die gew nschte Zeitleiste ziehen In Tabelle 6 7 sehen Sie zun chst eine bersicht ber die Ereignisse die das Skript einer Movieclip Instanz verarbeiten kann Tabelle 6 7 bersicht der Ereignisse f r Movieclip Instanzaktionen Ereignis Beschreibung onClipEvent load erstes Auftreten der Instanz praktisch f r Initialisierungsarbeiten onClipEvent unload Verschwinden der Instanz aus der Zeitleiste f r Aufr umarbeiten am Ende einer Sequenz geeignet onClipEvent enterFrame Start jedes Frames f r regelm ig wiederkehrende Aufgaben onClipEvent mouseDown Mausklick nicht auf dem Movieclip sondern irgendwo onClipEvent mouseMove Mausbewegung onClipEvent mouseUp Loslassen der Maustaste onClipEvent keyDown Dr cken einer Taste auf de
192. n Sie es und wechseln Sie in das neue Verzeichnis tar xzvf mysql 5 0 18 tar gz cd mysql 5 0 18 Geben Sie nun die blichen Befehle zur Konfiguration Kompilierung und Installation ein F r das Verzeichnis usr local mysql und die User ID mysql sehen diese so aus configure prefix usr local mysql with mysqld user mysql make make install Anschlie end m ssen Sie mysql_install_db ausf hren und auch die nachfolgenden Schritte ausf hren die oben f r die Linux Bin rinstallation beschrieben wurden Nach Installation und Start des MySQL Servers k nnen Sie zum Beispiel den Kom mandozeilen Client mysql verwenden um Datenbanken einzurichten und zu ver walten Es befindet sich im bin Verzeichnis der Installation und kann beim ersten Start ohne Passwort ausgef hrt werden usr local mysql bin mysql Die neue Eingabeaufforderung mysql gt zeigt dass Sie sich nun innerhalb dieses Clients befinden Hier sollten Sie sich aus Sicherheitsgr nden zuerst darum k m mern ein Passwort f r root localhost die Administration vom lokalen Rechner aus festzulegen mysql gt SET PASSWORD FOR root localhost PASSWORD meinPasswort Anschlie end sollten Sie alle Zugangsberechtigungen mit leerem Benutzernamen und oder leerem Passwort entfernen mysql gt DELETE FROM mysql user WHERE user OR password Nun k nnen Sie den Client zun chst wieder verlassen indem Sie exit oder q einge ben Wenn Sie ihn das n chs
193. n Sie im Bild Up dieser Schaltfl chen beliebige For men und beschriften Sie sie mit noch mal beziehungsweise Ende Erstellen Sie auf der Ebene buttons in Frame 40 ein Schl sselbild Ziehen Sie dort die beiden Buttons aus der Bibliothek auf die B hne Klicken Sie zun chst die Instanz von nochmal an und ffnen Sie dann die Aktionen Palette So k nnen Sie folgende Anweisungen f r diesen Button erstellen on release gotoAndPlay 2 Bei Schaltfl chen m ssen die Anweisungen in einem Block nach folgendem Schema stehen on Ereignis Ein erstes Beispiel 175 Wenn ein Benutzer die Schaltfl che auf die angegebene Weise bet tigt werden die Anweisungen ausgef hrt on release ist die h ufigste Ereignisprozedur sie wird nach einem Klick und dem anschlie enden Loslassen der Maustaste auf der Schalt fl che ausgel st Die Bedeutung von gotoAndPlay wurde bereits angesprochen Beachten Sie dass der Sprung diesmal zu Frame 2 erfolgt Wie Sie vielleicht bemerkt haben steht in diesem Bild das Skript das den Wert von turns auf 0 setzt Auf diese Weise werden also drei neue Durchg nge eingeleitet Die Schaltfl che ende erh lt folgende ActionScript Anweisung on release gotoAndStop 50 Die Funktion gotoAndStop springt genau wie gotoAndPlay zum angegebenen Bild eines Flash Films Allerdings wird der Film nicht von dort abgespielt sondern h lt an Im vorliegenden Beispiel soll n mlich nur noch ei
194. n Zeilen hinzu nat rlich mit angepassten Pfadangaben LoadModule php5_module C php5 php5apache2 dl1 AddType application x httpd php php Nach einem Neustart von Apache k nnen Sie nun denselben Test durchf hren wie unter UNIX PHP Anwendungen und Flash Filme Nachdem Sie im vorigen Abschnitt erfahren haben wie PHP Anwendungen grund s tzlich funktionieren geht es hier konkret um die Zusammenarbeit mit Flash Fil men Zu Beginn dieses Kapitels wurde bereits angedeutet dass diese etwas anders funktioniert als die Erstellung HTML basierter PHP Anwendungen Hier noch ein mal der schematische Ablauf 1 Ein Flash Film dient gewisserma en als Eingabemaske Er enth lt Textfelder Komponenten oder selbst erstellte Formularelemente Er spricht eine PHP Anwendung an der er seine Variablen ber POST oder GET sendet Wenn Sie auch nach dem Versand im aktuellen Flash Film bleiben m chten k nnen Sie die Funktion loadVariablesNum benutzen Wenn Sie eine unabh ngige Anwendung aufrufen m chten wird dagegen getURL verwendet Dieser For mular Teil einer solchen Anwendung wurde bereits im vorigen Kapitel aus f hrlich beschrieben PHP Anwendungen und Flash Filme 327 2 Die PHP Anwendung nimmt die Variablen des Flash Films wie HTML Formu lardaten entgegen Mit diesen Daten f hrt sie hinter den Kulissen beliebige Operationen durch Beispiele Im Falle eines Forums oder G stebuchs legt sie sie als neuen Beitrag in einer Datenb
195. n aber auch selbst dynamische Klassen erstellen und verwenden Um ein schnelles Beispiel zu erhalten wird hier kurz die Vererbung vorweggenommen um eine dynamische aber ansonsten v llig identische Ableitung von Auto zu erstellen nur der Konstruktor muss neu geschrieben werden da er nicht automatisch ber nommen wird Beginnen Sie eine neue ActionScript Datei und schreiben Sie fol genden Code hinein dynamic class DynAuto extends Auto Konstruktor public function DynAuto m Number v Number Konstruktor der Elternklasse aufrufen super m v Ansonsten keine nderungen Erg nzungen Speichern Sie die Klasse unter dem Namen DynAuto as im gleichen Verzeichnis wie ihre Elternklasse Auto as Anschlie end k nnen Sie einen neuen Flash Film mit fol gendem Bild Skript erstellen um die neue Dynamik auszuprobieren Eine DynAuto Instanz erstellen var a DynAuto new DynAuto 50 10 Dynamisch eine neue Eigenschaft hinzuf gen a farbe gruen Eigenschaft durch Ausgabe testen trace Das Auto ist a farbe Eine neue Methode als anonyme Funktion hinzuf gen a setVerbrauch function 1 Number Void this verbrauch 1 Die neue Methode aufrufen a setVerbrauch 11 Erfolg des Methodenaufrufs durch Ausgabe testen trace Das Auto verbraucht jetzt a getVerbrauch 1 Die Ausgabe des Beispiels sieht erwartungsgem so aus Das Auto ist gruen Das Auto verbraucht jetzt
196. n eine Funktion keine Argumente entgegennimmt in diesem Fall bleiben die Klammern einfach leer gotoAndStop 17 stop Bl cke Bei einer Fallentscheidung h ngt normalerweise genau eine Anweisung von der Bedingung ab auch bei Schleifen wird nur eine einzelne Anweisung wiederholt In vielen F llen soll aber eine l ngere Abfolge von Anweisungen in einem solchen Kon text stehen Zu diesem Zweck werden Anweisungsbl cke verwendet Wenn Sie eine Folge von Anweisungen in geschweifte Klammern setzen verhalten sich diese nach au en wie eine einzelne Anweisung Jede Anweisung innerhalb des Blocks 182 Kapitel 6 Interaktivit t durch ActionScript wird wieder mit einem Semikolon abgeschlossen der Block selbst dagegen nicht Im folgenden Beispiel wird der Sound nur dann angehalten wenn die Variable punkte einen gr eren Wert als 100 hat der Sprung zum Bild weiter erfolgt dage gen immer Sound anhalten wenn punkte gt 100 if punkte gt 100 stopAllSounds Immer Sprung zum Frame weiter gotoAndPlay weiter Soll dagegen auch der Sprung nur stattfinden wenn die Bedingung zutrifft dann m ssen Sie einen Block benutzen Sound anhalten und Sprung wenn punkte gt 100 if punkte gt 100 stopAllSounds gotoAndPlay weiter Die geschweiften Klammern erzeugen Sie auf einem Windows Rechner mit Alt Gr 7 beziehungsweise Alt Gr 0 auf einem Mac dagegen ber die Tastenkombina tionen ALT 5
197. n statisches Ende Bild ange zeigt werden wenn der entsprechende Button angeklickt wurde F gen Sie nun in Frame 50 auf der Ebene animation ein leeres Schl sselbild ein Einf gen gt Zeitleiste gt Leeres Schl sselbild oder Taste F7 Schreiben Sie dann den Text Ende auf die leere B hne Wenn Sie m chten k nnen Sie auch auf der Ebene action ein Schl sselbild einf gen und ihm folgende einfache Anweisung zuordnen stop Da dieses Frame durch gotoAndStop erreicht wird ist dies eigentlich unn tig denn der Film h lt ohnehin an Allerdings wird das durch diese Bild Aktion deutlicher Nachdem Sie alles erledigt haben k nnen Sie den Film mit Steuerung gt Film testen oder STRG ENTER starten Wenn Sie alles richtig gemacht haben sollte nun drei mal die Animation abgespielt werden Anschlie end m ssten die beiden Schaltfl chen erscheinen Wenn Sie Noch mal anklicken sollte die Animation erneut dreimal abgespielt werden klicken Sie dagegen auf Ende dann m sste das entsprechende Standbild erscheinen Tabelle 6 1 zeigt noch einmal zusammenfassend alle ActionScript Anweisungen die Sie in diesem kurzen Beispiel benutzt haben Weiter unten in diesem Kapitel werden sie genauer beschrieben Tabelle 6 1 ActionScript Anweisungen des ersten Beispiels im berblick Position Anweisung Erl uterung Bild 2 var turns 0 Variable turns deklarieren und ihr den Wert 0 zuweisen Bild 3 turns Wert von turns um 1 erh he
198. n von Variablen genauer steuern l sst Der Konstruktor selbst hat keine Argumente das Objekt wird stets auf folgende Weise erstellt var loader new LoadVars PHP Anwendungen und Flash Filme 333 Die einzelnen Lade und Sendefunktionen werden durch die Methoden dieser Instanz bereitgestellt Die wichtigsten von ihnen sind folgende e loader load URL l dt Variablen aus der angegebenen URL e loader send URL Ziel Methode sendet die Variablen des aktuellen Kontex tes an die angegebene URL Zus tzlich k nnen Sie als Ziel ein Zielfenster oder frame angeben in dem dann die Server Antwort angezeigt wird in diesem Fall funktioniert die Methode wie getURL Falls Sie ein Ziel definieren steht es Ihnen frei als drittes Argument die gew nschte HTTP Versandmethode anzugeben Standard ist ansonsten POST e loader sendAndlLoad URL Zielobjekt Methode sendet zun chst die Variab len an die angegebene URL Anschlie end nimmt sendAndLoad die Antwort des Servers entgegen und speichert sie als Variablen in dem LoadVars Objekt Zielobjekt Im Grunde entspricht diese Methode also am ehesten dem Stan dardverhalten von loadVariablesNum Diese drei Methoden bieten noch nichts was sich nicht mit loadVariablesNum oder getURL machen lie e Der eigentliche Vorteil von LoadVars Instanzen besteht darin dass Sie eine Kontrolle ber den Ladevorgang selbst aus ben k nnen Zu die sem Zweck stehen Ihnen einige zus tzliche Met
199. ndet var a new Array 100 11 1 20 12 20 var b new Array Flash 8 Pro mit actionscript Wenn Sie a sort beziehungsweise b sort ohne zus tzliche Optionen aufrufen erhalten Sie folgende Sortierreihenfolgen a sort Neuer Wert 1 100 11 12 20 20 b sort Neuer Wert 8 Flash Pro actionscript mit Die merkw rdige Position der 100 im ersten Array kommt zustande weil jedes Array standardm ig alphabetisch und nicht numerisch sortiert wird 198 Kapitel 6 Interaktivit t durch ActionScript Hier nun die Konstanten mit Wirkungsbeispielen e Array CASEINSENSITIVE oder 1 Standardm ig kommen alle Gro buchstaben vor jedem Kleinbuchstaben an die Reihe wenn Sie diese Option setzen wird die Gro und Kleinschreibung ignoriert Beispiel b sort Array CASEINSENSITIVE Neuer Wert 8 actionscript Flash mit Pro e Array DESCENDING oder 2 Normalerweise wird aufsteigend sortiert diese Option kehrt die Reihenfolge um Beispiel a sort Array DESCENDING Neuer Wert 20 20 12 11 100 1 e Array UNIQUESORT oder 4 Das Array wird nur sortiert wenn es lauter einmalige Werte enth lt Andernfalls wird 0 zur ckgegeben Beispiele a sort Array UNIOUESORT Wert von a bleibt unver ndert b sort Array UNIQUESORT Neuer Wert 8 Flash Pro actionscript mit e Array RETURNINDEXEDARRAY oder 8 Das Array selbst wird nicht so
200. ne vollst ndige Website zu machen an der einige der hier vorgestellten Techniken demonstriert werden Im Verzeichnis beispiele kapitel8 site_start finden Sie die Ausgangsdateien der Site im FLA Format Die meisten von ihnen haben Sie unter anderem Namen bereits selbst erstellt Hier wurden sie lediglich um einen Button f r die R ckkehr zum Hauptmen erweitert Die Datei um deren Bearbeitung es hier vor allem geht bil det das Hauptmen Sie finden sie unter dem vorl ufigen Namen menu_start fla Die Datei enth lt in insgesamt f nf Bildern zahlreiche Schaltfl chen die dazu die nen sollen andere Filme beziehungsweise externe URLs zu laden Als Erstes werden die Schaltfl chen im Bild mit der Markierung main bearbeitet Sie erhalten lediglich Sprungbefehle zu den anderen Frames desselben Films weil sie die bergeordnete Ebene des Hauptmen s bilden Klicken Sie die Schaltfl che Produkte an und wei sen Sie ihr folgendes Skript zu das zum Bild mit der Markierung prod springt on release gotoAndStop prod Die Schaltfl che Info erh lt die folgenden Anweisungen die beim Anklicken einen Sprung zum Frame info durchf hren on release gotoAndStop info Praxisbeispiel Dynamischer Katalog und verkn pfte Website 279 Auch Kontakt wird mit einem hnlichen Skript ausgestattet es verzweigt zum Bild kont on release gotoAndStop kont Als Letztes bekommt nun der Button Links seine ActionScript Bef
201. nen Sie beliebig viele Objekte so genannte Instanzen der Klasse erstellen die grundlegende Syntax sieht so aus var instanzName KlassenName new KlassenName Argument Argument 6 Die Instanz kann nun ber die in der Klasse definierten Methoden manipuliert werden Die Schreibweise f r die Methodenaufrufe lautet instanzName methodenName Argument Argument 7 Wenn Sie m chten k nnen Sie von der soeben entwickelten Klasse wieder andere Klassen ableiten Eine Klassendefinition muss in einer separaten ActionScript Datei mit der Endung as gespeichert werden Der Dateiname vor der Erweiterung muss exakt dem Klas sennamen entsprechen und zwar einschlie lich Gro und Kleinschreibung obwohl Windows diese nie und Mac OS X sie nur auf UFS Partitionen unterst tzt Der ActionScript Compiler in der SWF Exportfunktion findet solche Klassenda teien automatisch wenn Sie sie im gleichen Verzeichnis speichern wie die darauf zugreifenden Flash Filme Um innerhalb von Flash eine ActionScript Datei zu erstellen w hlen Sie Datei gt Neu und dann den Typ ActionScript Datei von der Registerkarte Allgemein Das Hauptfenster dieser Datei entspricht im Wesentlichen dem im vorigen Kapitel beschriebenen Bedienfeld Aktionen allerdings stehen die meisten Optionen diesmal im Men Ansicht zur Verf gung Hier zun chst eine einfache Fassung der Klasse Auto Im n chsten Abschnitt wird sie im Rahmen der Beschreibung diverser Them
202. ng StopPlay Diese Anweisung schickt dieselbe SWF Datei in Netscape zu Frame Nummer 20 document embeds jssteuerung GotoFrame 20 Medien dynamisch laden In Kapitel 4 haben Sie erfahren wie Sie Mediendateien manuell in die Arbeitsumge bung von Flash importieren und sinnvoll einsetzen k nnen Alternativ k nnen Sie JPEG Bilder und MP3 Sound Dateien auch dynamisch per ActionScript laden JPEG Bilder laden Das Praktische an den Funktionen zum Laden von JPEG Bildern ist dass Sie diese bereits kennen loadMovieNum beziehungsweise loadMovie k nnen nicht nur SWF Dateien sondern eben auch JPEGs laden Das folgende Beispiel l dt die Datei foto jpg aus dem aktuellen Ordner auf Stufe 1 loadMovieNum foto jpg 1 N tzlicher d rfte es in der Regel sein JPEG Bilder in Movieclip Instanzen zu laden Auf diese Weise l sst sich n mlich genau festlegen wo sie auf der B hne platziert werden sollen mit ihrer linken oberen Ecke am Registrierpunkt der Instanz Das folgende Beispiel l dt die Datei gitarre jpg aus dem untergeordneten Verzeichnis bilder in den Movieclip bildbox bildbox loadMovie gitarre jpg Medien dynamischladen 275 Selbstverst ndlich ist auch hier wieder die alternative Schreibweise von loadMovie als globale Funktion zul ssig loadMovie gitarre jpg bildbox MP3 Dateien laden Wenn Sie MP3 Sounds dynamisch laden m chten m ssen Sie eine Instanz der Klasse Sound verwenden
203. ngabe der Stufe 0 den bisherigen Film ersetzt loadMovie verwendet dagegen die angegebene Movieclip Instanz als Ziel 265 W Beachten Sie dass Sie mit Hilfe der loadMovie Funktionen nur SWF Dateien laden k nnen Sie m ssen sie also zun chst gem der 1 Beschreibung in Kapitel 5 Flash Filme ver ffentlichen exportieren mit FLA Arbeitsdateien funktioniert es noch nicht einmal zum Aus probieren Den aktuellen Film ersetzen Die einfachste M glichkeit ist das Laden eines anderen Films auf Stufe 0 Dies ersetzt den bisherigen Film so dass nach wie vor nur ein Film im Flash Player abge spielt wird Somit brauchen Sie sich nicht mit den speziellen Problemen zu besch f tigen die auf Sie zukommen k nnen wenn mehrere Filme gleichzeitig vorhanden sind siehe n chsten Unterabschnitt brigens hat Stufe 0 noch eine Besonderheit Da diese Stufe den grundlegenden Film enth lt der alle brigen steuert werden beim Laden eines Films auf diese Stufe auch alle eventuell auf h here Stufen gelade nen Filme entfernt Wu Der Film der urspr nglich im Flash Player abgespielt wurde bestimmt immer die Hintergrundfarbe die Gr e und die Abspiel rate Wenn Sie einen anderen Film auf Stufe 0 laden bernimmt er diese Werte Die Syntax zum Laden eines anderen Films auf Stufe 0 ist einfach loadMovieNum URL 0 Die URL wird als String angegeben deshalb muss sie in Anf hrungszeichen stehen falls sie nicht gerade
204. noch den n tzlichen Event Handler onLoad verwenden indem Sie ihm eine Funktion zuordnen Dies erspart Ihnen eine Schleife mit Sprungbefehlen weil die Funktion genau dann aktiviert wird wenn ein load beziehungsweise sendAndLoad Vorgang abgeschlossen ist Dabei wird dem Hand ler der Wert true bergeben wenn das Laden Erfolg hatte oder false wenn es mit einem Fehler abgebrochen wurde Hier sehen Sie ein einfaches Beispiel LoadVars Instanz definieren var loader new LoadVars Ladevorgang einleiten loader load lotsofvars php Event Handler deklarieren wird nach dem Laden aufgerufen loader onLoad function success if success Erfolgreich geladen gotoAndPlay showData else Ladefehler gotoAndPlay fehler ActionScript und XML Die Extensible Markup Language XML hat sich in den letzten Jahren zum wich tigsten Datenaustauschformat f r verteilte Anwendungen entwickelt Flash kann XML Dateien gem dem DOM Standard Document Object Model des WWW Konsortiums verarbeiten Auf diese Weise k nnen Sie XML Dokumente laden und in Form eines Baummodells auswerten aber auch modifizieren und neu konstruie ren Der kurze Einstieg in diesem Abschnitt beschr nkt sich auf die Verarbeitung vorhandener XML Dokumente wickelt die automatisierte Zusammenarbeit von Anwendungen per HTTP Kommunikation wobei Plattform Betriebssystem und Pro grammiersprache so gut wie keine Rolle spielen
205. nsatz angefordert wird loadVariablesNum guestdata php 0 POST Unter der Funktionsdefinition wird eintrag auf den Anfangswert 1 gesetzt Der anschlie ende Aufruf liest also den ersten Datensatz Zu guter Letzt sorgt stop daf r dass der Film an dieser Stelle anh lt Als N chstes erh lt auch der linke Bl tter Button ein Skript on release eintrag getData Der Wert der globalen Variablen eintrag wird also um 1 vermindert Der anschlie ende Neuaufruf von getData stellt sicher dass der entsprechende Datensatz gela 348 Kapitel 10 Interaktion mit Webserver Anwendungen den wird Wie Sie sehen k mmert sich dieses Skript nicht um die Unterschreitung des Grenzwertes 1 es ist praktischer die entsprechende Logik in das PHP Skript guestdata php einzubauen Der rechte Pfeil ben tigt nat rlich ein beinahe identisches Skript der einzige Unter schied ist dass eintrag hier um 1 erh ht wird on release eintrag getData Schlie lich braucht auch die Schaltfl che Eintragen noch ein Skript sie springt zum Frame write damit ein Benutzer sich ins G stebuch eintragen kann on release gotoAndStop write Das Wichtigste f r diese Anwendung sind allerdings nicht diese kurzen Action Script Anweisungsbl cke sondern das PHP Skript Geben Sie in einen Editor Ihrer Wahl folgenden Code ein und speichern Sie ihn unter dem Namen guestdata php im gew nschten Verzeichnis Ihrer Webs
206. nstanten im vorigen Kapitel wurde beispielsweise die Klasseneigenschaft Math PI erw hnt die den Wert von n enth lt Klassen entwerfen und programmieren 243 Da es f r ein Auto keine allgemein n tzliche Konstante gibt sehen Sie hier als Bei spiel eine ganz neue Klasse die nur aus statischen Eigenschaften besteht class Farbe public static var SCHWARZ Number 0x000000 public static var ROT Number OxFF0000 public static var GR EN Number OxOOFFOO public static var BLAU Number 0x0000FF public static var GELB Number ROT GRUEN public static var MAGENTA Number ROT BLAU public static var CYAN Number GRUEN BLAU public static var WEISS Number ROT GRUEN BLAU Die Elemente dieser Klasse sind numerische RGB Farbwerte Sie k nnen sie in der Form Farbe ROT oder Farbe SCHWARZ verwenden beispielsweise f r die im vorigen Kapitel beschriebene Einf rbung von Movieclips u Auf statische Eigenschaften darf innerhalb der Klassendefinition nicht mittels this zugegriffen werden Wie bereits erw hnt bezieht u sich this auf die aktuelle Instanz aber Klasseneigenschaften sind kei ner Instanz zugeordnet Zur Unterscheidung k nnen Sie aber auch innerhalb der Klasse Klassenname Eigenschaft schreiben Konstruktoren Der Konstruktor ist eine spezielle Funktion die automatisch beim Erstellen einer neuen Instanz mittels new aufgerufen wird Sie darf keine Datentypangabe besit zen da ih
207. nthName Methode Gibt lokalisierten Monatsnamen nach ISO Sprachk rzel zur ck 258 Kapitel 7 ActionScript 2 0 Klassen param lang ISO Sprachk rzel wie en de usw public function getInternationalMonthName lang String String var months new Array switch lang case de months push Januar Februar M rz April Mai Juni Juli August September Oktober November Dezember break case en default months push January February March April May June July August September October November December return months this getMonth getMonthName Methode Gibt den englischen Monatsnamen zur ck public function getMonthName return this getInternationalMonthName en getInternationalMonthAbbreviation Methode Gibt das lokalisierte 3 Buchst K rzel des Monats zur ck param lang ISO Sprachk rzel wie en de usw public function getInternationalMonthAbbreviation lang String String return this getInternationalMonthName lang substring 0 3 getDayAbbreviation Methode Gibt 3 Buchst K rzel des englischen Monatsnamens zur ck public function getMonthAbbreviation String return this getInternationalMonthAbbreviation en getInternationalFormatPart Methode Gibt lokalisiertes strftime kompatibles Zeitelement zur ck P
208. olgenden Ausf hrungen gehen davon aus dass C php5 verwendet wird 326 Kapitel 10 Interaktion mit Webserver Anwendungen 2 Kopieren Sie die Datei php ini dist aus dem PHP Installationsverzeichnis in Ihr Windows Verzeichnis je nach Version oft C Windows oder C WinNT und benennen Sie sie dort in php ini um ffnen Sie sie mit einem Texteditor und ndern Sie die beiden folgenden Zeilen doc_root C Programme Apache Group Apache2 htdocs extension dir C php5 ext Nat rlich m ssen Sie Ihre eigene Apache DocumentRoot sowie das korrekte PHP Verzeichnis angeben 3 Kopieren Sie die Datei phpSts dll in das Unterverzeichnis System32 Ihres Win dows Verzeichnisses 4 F gen Sie das PHP Verzeichnis zur Umgebungsvariablen PATH mit den Pfaden f r ausf hrbare Programme hinzu W hlen Sie Start gt Systemsteuerung und doppelklicken Sie auf das Symbol System Auf der Registerkarte Erweitert fin den Sie unten die Schaltfl che Umgebungsvariablen Sie ffnet einen neuen Dia log in dem Sie unter Systemvariablen die Variable Path anklicken m ssen W hlen Sie Bearbeiten und f gen Sie an den Wert der Variablen ein Semikolon und Ihr PHP Verzeichnis zum Beispiel C php5 an Nach dreimaligem OK zum Schlie en der verschachtelten Dialoge m ssen Sie Ihren Rechner leider komplett neu starten damit diese nderung wirksam wird 5 F gen Sie in der Apache Konfigurationsdatei httpd conf an den passenden Stel len die beiden folgende
209. ollten Sie sehr restriktive Einstellungen f r alle Verzeichnisse auf dem Server Rechner vornehmen damit niemand auf unerlaubte Bereiche zugreifen kann Setzen Sie dazu die folgenden Verzeichnisoptionen f r das Wurzelverzeichnis Directory gt Options None AllowOverride None Order deny allow Deny from all lt Directory gt Zugriffe auf die DocumentRoot sollen dagegen gestattet sein Wenn Sie nur von Ihrem eigenen Rechner aus darauf zugreifen m chten k nnen Sie Folgendes schreiben wobei Sie den Pfad nat rlich gem Ihrer DocumentRoot anpassen m ssen Eine PHP Testumgebung einrichten 317 lt Directory usr local apache2 htdocs gt Options Indexes FollowSymLinks AllowOverride None Order deny allow Deny from all Allow from 127 0 0 1 lt Directory gt Sollen dagegen auch Rechner aus Ihrem lokalen Netzwerk Zugriff erhalten dann m ssen Sie die Allow Zeile um die gemeinsame Netzwerknummer erg nzen Beispiel Allow from 127 0 0 1 192 168 0 Was Sie hier statt 192 168 0 eintragen m ssen h ngt von Ihrer Netzwerkkonfigura tion ab F r einen ffentlich im Internet zug nglichen Webserver werden dagegen folgende Zeilen benutzt Order allow deny Allow from all Nachdem Sie die entsprechenden nderungen vorgenommen und die Konfigura tionsdatei gespeichert haben m ssen Sie Apache neu starten Unter UNIX k nnen Sie dazu folgenden Befehl eingeben apachectl restart In welchem Verzeichnis sich das Tool apachec
210. owie die aktuelle Zeile bergeben Das Ergebnis wird wieder in row gespeichert um die Zei lennummer aktuell zu halten row getMenultems x childNodes j indent 1 row Die letzte Zeile der Funktion ist das Gegenst ck zu diesem Aufruf sie gibt den aktuellen Wert von row zur ck return row Hier noch einmal der komplette kommentierte Code des Bildskriptes Aktuellen XML Knoten berpr fen Falls es ein Men element ist einen entsprechenden Movieclip erzeugen Anschlie end die Kindknoten abarbeiten function getMenultems x XMLNode indent Number row Number Number Ist der aktuelle Knoten ein lt item gt if x nodeType 1 amp amp x nodeName item Attribute Link URL und Beschriftung auslesen var href String x attributes href var cap String x attributes caption Movieclip Kopie erstellen var theltem MovieClip _root item duplicateMovieClip item row row x und y Position nach Einr ckstufe bzw Zeile berechnen theltem x 30 indent 10 theItem y theItem height 10 row 10 URL und Beschriftung des Clips setzen theltem href href theltem cap cap Die fertige Clip Kopie sichtbar machen theltem visible true Zeilennummer erh hen da ein Men punkt erstellt wurde YOw 340 Kapitel10 Interaktion mit Webserver Anwendungen Gibt es Kindknoten if x hasChildNodes Schleife ber alle Kindknoten for var j Number 0 j l
211. piel es erh ht den Wert der Variablen zaehler im Hauptfilm von einer beliebigen Stelle aus um 1 _root zaehler q ActionScript bietet eine sehr praktische Funktion namens eval die einen String Ausdruck auswertet und als ActionScript Formulierung versteht Dieses Hilfsmittel erm glicht es Ihnen dynamische Zugriffe auf Movieclip Instanzen durchzuf hren indem Sie die Instanznamen damit bilden Das folgende Beispiel geht davon aus dass die aktuelle Zeitleiste 10 Instanzen namens clip1 bis clip10 enth lt Diese sollen in einer Schleife alle angehalten werden for i 1 i lt 10 i Referenz auf aktuellen Clip erstellen var clipref eval clip i aktuellen Clip anhalten clipref stop Movieclip Eigenschaften Ein weiteres sehr praktisches Element von Movieclip Instanzen sind deren lesbare und nderbare Eigenschaften Sie k nnen Aspekte wie Gr e Position oder Trans parenzgrad einer Instanz dynamisch ndern und auf diese Weise Animationen erstellen die interaktiv auf Ereignisse reagieren Der Name jeder Eigenschaft beginnt mit einem Unterstrich Tabelle 6 6 zeigt zun chst einen berblick ber die wichtigsten von ihnen Tabelle 6 6 Die wichtigsten Movieclip Eigenschaften Eigenschaft _width _height _xscale _yscale x gt _rotation _visible _alpha _xmouse _ymouse Wertebereich beliebig beliebig beliebig beliebig beliebig beliebig 0 360 true false 0 100 beliebig
212. pr fen Falls die Bedingung zutrifft werden bestimmte Anweisungen ausgef hrt wenn sie dage gen falsch ist k nnen andere oder auch keine Befehle ausgef hrt werden Die einfachste Form der Fallentscheidung hat das folgende Format if Ausdruck Anweisung Falls der Ausdruck gem den oben erl uterten Kriterien wahr ist wird die zugeh rige Anweisung ausgef hrt Im folgenden Beispiel erfolgt ein Sprung zum Bild ende wenn die Variable spiele den Wert 0 hat if spiele 0 gotoAndStop ende Wie bereits erw hnt k nnen Sie einen Block in geschweiften Klammern benutzen wenn mehrere Anweisungen von derselben Bedingung abh ngen sollen Betrachten Sie dazu dieses Beispiel das der Variablen spiele vor dem Sprung zum Bild ende den Wert 3 zuweist etwa als Ausgangspunkt f r eine neue Spielrunde if spiele 0 spiele 3 gotoAndStop ende ActionScript Grundelemente 205 Wenn eine alternative Anweisung ausgef hrt werden soll falls der Ausdruck nicht wahr ist geschieht dies mit Hilfe des Schl sselwortes else Das folgende Beispiel k nnte am Ende einer Spielrunde stehen Die Variable spiele wird um 1 vermin dert Wenn ihr Wert noch gr er als 0 ist erfolgt ein Sprung zum Frame spielstart andernfalls verzweigt der Film zum Bild ende spiele if spiele gt 0 gotoAndPlay spielstart else gotoAndStop ende Nat rlich k nnten Sie auch bei einem else Teil die geschweiften Kla
213. r eine HTTP Antwort an den Client zur ck die wiederum einige Header anschlie Bend eine Leerzeile und zum Schluss das gew nschte Dokument enth lt Diese Ant wort mit gestutztem HTML Code des Dokuments sieht etwa so aus HTTP 1 1 200 OK Date Fri 02 Dec 2005 17 35 10 GMT Server Apache 1 3 28 Linux SuSE mod_ss1 2 8 15 OpenSSL 0 9 7b mod_per1 1 28 Last Modified Fri 02 Dec 2005 02 24 00 GMT ETag 7d500 3737 40e4c740 Accept Ranges bytes Content Length 14135 Connection keep alive Content Type text html lt xml version 1 0 encoding IS0 8859 1 gt lt DOCTYPE html PUBLIC W3C DTD XHTML 1 0 Transitional EN http www w3 org TR xhtml1 DTD xhtml1 transitional dtd gt lt html xmIns http www w3 0rg 1999 xhtml lang en US xml lang en US gt lt head gt lt product id flashmxbas2ger gt lt title gt Praxiswissen Flash 8 lt title gt an Die erste Zeile gibt zun chst wieder die HTTP Protokollversion an Darauf folgt ein Statuscode in diesem Fall 200 OK f r eine gefundene und korrekt gelieferte Res source Ein anderer bekannter Statuscode ist 404 Not Found Sie bekommen ihn oft bei falsch geschriebenen URLs oder fehlerhaften Links zu Gesicht Auch ber die Server Antwort Header erhalten Sie hier einen kurzen berblick e Date Fri 02 Dec 2005 17 35 10 GMT Datum und Uhrzeit als die Serverant wort abgeschickt wurde e Server Apache 1 3 28 Linux SuSE mod_ss1 2 8 15 OpenSSL 0 9 7
214. r Datentyp eben die Klasse selbst ist Die Aufgabe eines Konstruktors ist die Initialisierung der Instanz im Wesentlichen geht es darum den Eigenschaften ihre Anfangswerte zuzuweisen H ufig wie beim Auto Beispiel werden einige von ihnen vom Konstruktor als Parameter erwartet public function Auto m Number v Number this maxTankFuellung m this verbrauch v Zu Anfang km Stand 0 Tank voll this kmStand 0 this tankFuellung this maxTankFuellung Wenn Sie gar keinen Konstruktor definieren stellt ActionScript einen leeren Stan dard Konstruktor bereit Falls Sie dies verhindern m chten und keinen anderen Konstruktor definiert haben k nnen Sie den Konstruktor einfach explizit private setzen Einen Sinn erg be dies beispielsweise bei der oben beschriebenen Klasse Farbe die rein statisch verwendet wird Instanzerzeugung verbieten Konstruktor private setzen private function Farbe 244 Kapitel 7 ActionScript 2 0 Klassen Der folgende Versuch scheitert dann mit der angegebenen Fehlermeldung var f Farbe new Farbe Fehler Szene Szene 1 Ebene Ebene 1 Bild 1 Zeile 9 Das Mitglied ist privat und der Zugriff darauf ist nicht m glich var f Farbe new Farbe Methoden Die innerhalb einer Klasse definierten Funktionen werden Methoden genannt Genau wie bei den Eigenschaften lassen sich Instanzmethoden und durch static gekennzeichnete Klassenmethoden unterscheiden Der Zugr
215. r Tastatur onClipEvent keyUp Loslassen einer Taste auf der Tastatur onClipEvent data externe Daten werden geladen Das nachfolgende Beispiel geht davon aus dass sich auf der B hne eine Movieclip Instanz namens test befindet Wenn Sie diesen Code wie beschrieben einem Steuer clip zuweisen springt diese Instanz bei jedem Mausklick auf die Position des Maus zeigers und l sst sich mit der Maus ziehen solange die Maustaste gedr ckt bleibt onClipEvent mouseDown startDrag _root test true onClipEvent mouselp stopDrag Die Funktion startDrag clipInstanz zentrieren sorgt daf r dass die angegebene Instanz bis zum Aufruf von stopDrag zusammen mit dem Mauszeiger bewegt wird Das zweite Argument zentrieren bestimmt dabei ob der Registrierpunkt des Movieclips auf die Mausposition springen soll true oder nicht false Denken Sie daran dass sich Movieclip Instanzaktionen auf die Zeit leiste des Movieclips beziehen dem sie zugeordnet sind Um auf die Zeitleiste des Hauptfilms und deren Funktionen Variablen und Methoden zugreifen zu k nnen m ssen Sie diesen root oder den passenden relativen Bezug voranstellen Movieclips steuen 219 Praxisbeispiel Navigation interaktive Demo und Spiel Die Anwendungsbeispiele in diesem Kapitel f hren einen Schritt weiter Statt der gr tenteils passiven Animationen und Pr sentationen der vorherigen Kapitel fin det hier auch Interaktivit t statt
216. r binden als andere und deshalb in einer bestimmten Reihenfolge berechnet werden kennen Sie sicher ebenfalls Punkt vor Strichrechnung 3 7 5 4 hat den Wert 42 weil 7 5 zuerst ausgerechnet wird Diese Operationen funktionie ren in ActionScript genauso wie in der Mathematik Selbst der Einsatz von Klammern zur nderung der Priorit t ist m glich 3 7 5 4 ergibt 90 Klammern manchmal runde und eckige Klammern gemischt In ActionScript und anderen Programmiersprachen d rfen Sie f r diese Aufgabe nur runde Klammern benutzen eckige erf llen eine andere Aufgabe DI In der Mathematik benutzt man bei der Verschachtelung mehrerer Die bekannteste Art von Operatoren sind somit die arithmetischen ActionScript kennt die vier Grundrechenarten Addition Subtraktion Multiplikation und Division Sie funktionieren wie erwartet Division durch O ist wie in der Mathematik verboten Zus tzlich gibt es den so genannten Modulo Operator geschrieben der den Rest einer Division der beiden Werte zur ckgibt 4 2 ergibt beispielsweise 0 w hrend 11 4 das Ergebnis 3 liefert Der Operator hat brigens noch eine andere Aufgabe Er kann Strings miteinan der verkn pfen Beispiel var prog Flash var version 8 Pro var ausgabe prog version ausgabe hat nun nat rlich den Wert Flash 8 Pro brigens funktioniert die Ver kn pfung auch dann wenn einzelne Operanden keine Strings sind si
217. r statt der eigentlichen Zeichen werden angezeigt Beispiel Ihr Passwort bitte lt input type password name pass size 20 maxlength 8 gt Schlie lich sind zwei verschiedene Sorten von Ankreuzfeldern interessant Bei Optionsfeldern kann aus einer Gruppe jeweils nur einer ausgew hlt werden die englische Bezeichnung Radio Button bezieht sich auf das entsprechende Verhalten bei den Wellenbereichskn pfen alter Radios Auswahlfelder engl checkboxes erm glichen dagegen die Auswahl mehrerer Optionen Bei diesen Elementen wird das Attribut name f r die gesamte Gruppe mit demselben Namen belegt w hrend value den Wert angibt der versandt wird wenn der betref fende Button aktiviert ist Radio Buttons besitzen also folgendes Syntaxschema lt input type radio name gruppenname value auswahl1 gt lt input type radio name gruppenname value auswahl2 gt Das folgende Beispiel erm glicht die Auswahl einer Zahlungsart in einem Bestellfor mular Wie m ouml chten Sie zahlen lt input type radio name payment value uebw gt amp Uuml berweisung lt input type radio name payment value schk gt Verrechnungsscheck lt input type radio name payment value last gt Lastschrifteinzug lt input type radio name payment value kred gt Kreditkarte Wenn beispielsweise das Feld neben berweisung angekreuzt wird dann versendet der Browser mit den Formulardaten den Wert payment uebw Die Syntax e
218. raxisbeispiel Eine Komfort Datumsklasse 259 param fPart strftime kompatibler Format Platzhalter M gliche Werte a Abgek rzter Wochentag Sun Mon A Wochentag Sunday Monday b Abgek rzter Monatsname Jan Dec B Monatsname January December c RFC 1123 Datums Uhrzeit String d Tag des Monats mit f hrender 0 01 31 e Tag des Monats 1 31 Stunde 00 23 I Stunde 00 12 j Tag im Jahr 0 365 m numerischer Monat 1 12 M Minute 00 59 p a m oder p m S Sekunde 00 59 u numerischer Wochentag 1 7 Sun Mon w numerischer Wochentag 0 6 Sun Mon Jahr z B 2005 Zeichen ER FETRTETET FETTE TREFFER TEE RER DS aa 1 param lang ISO Sprachk rzel wie en de usw 2 public function getInternationalFormatPart fPart String lang String String var out String switch fPart case a out this getInternationalDayAbbreviation lang break case AA out this getInternationalDayName lang break case b out this getInternationalMonthAbbreviation lang break case B out this getInternationalMonthName lang break case c out this toString break case d var d Number this getDate out preo d break case e out String this getDate break case H var h Number this getHours out preo h break 260 Kapitel 7 ActionScript
219. ray 1a 1b 2a 2b 3a 3b 4a 4b 5a 5b 6a 6b var kartenframes new Array 2 2 3 3 4 4 5 5 6 6 7 7 Zuf llige Verteilung der Karten Die 12 Kartenpositionen var karten new Array for var i 0 i lt 12 i var k Math floor Math random kartenstapel length Karte und Frame w hlen arte kartenstapel k bild kartenframes k Entsprechende Elemente aus den Arrays entfernen artenstapel splice k 1 artenframes splice k 1 Karte speichern arten i karte Der aktuellen Instanz ihre Frame Nummer mitteilen var k ref eval karte i _ref bildNr bild Statusvariablen bisher kein Paar gefunden var paare 0 Anzahl der offenen Karten var offene 0 beide Karten gleich var gleich false Wartezeit bis zum autom Schlie en var warten 0 Anzahl der Versuche var versuche 0 Feldnummern der ge ffneten Karten zum Schlie en var pos new Array 226 Kapitel 6 Interaktivit t durch ActionScript function klick karteMC Nichts tun wenn zweite Karte wie erste if offene 1 amp amp pos 1 karteMC return Sind schon zwei Karten offen if offene 2 beide schlie en schliessen Karte ffnen karteMC gotoAndStop karteMC bildNr offene Karte merken pos offene karteMC Ist dies die 2 Karte if offene 2 sind die Karten gle
220. rdaten versendet wurden siehe vori ges Kapitel Die Indizes dieser Arrays sind die jeweiligen Feldnamen wie sie ber das Attribut name der HTML Formular Tags oder die Variablennamen eines Flash Films festgelegt wurden Angenommen ein HTML Dokument enth lt folgendes Formular lt form action gruss php method get gt Ihr Name lt input type text name user gt lt input type submit value Absenden gt lt form gt Wenn ein Benutzer seinen Namen eintippt und auf Absenden klickt kann das ange sprochene PHP Skript gruss php ihn folgenderma en pers nlich begr en lt php name _GET user echo Hallo name gt Flash Variablen in PHP Anwendungen laden Wie bereits erw hnt k nnen Sie eine PHP Anwendung aus einem Flash Film her aus sowohl mit getURL als auch mit einer der loadVariables Anweisungen akti vieren getURL sorgt daf r dass ein v llig neues Dokument in den Browser geladen wird Wenn Sie auf diese Weise eine serverseitige Anwendung anfordern wird erwartet dass diese Anwendung das Dokument liefert In Zusammenarbeit mit Flash w re dies nur dann sinnvoll wenn der dynamisch erzeugte HTML Code wieder einen eingebetteten Flash Film enthielte Deshalb sind loadVariablesNum beziehungsweise loadVariables oft geeigneter Sie rufen die Webanwendung zun chst auf und senden ihr die Variablen des aktuellen Kontextes Daraufhin erwarten sie dass die Webanwendung ihnen Vari
221. re entering an era in which software learns from its users and all of the users are connected Tim O Reilly In diesem Kapitel erhalten Sie einen Einstieg in die Programmierung serverseitiger Skripte die mit Flash Filmen interagieren Auf diese Weise erhalten Sie die M g lichkeit Daten aus den im vorigen Kapitel vorgestellten Formularen entgegenzu nehmen auf dem Server zu verarbeiten und anschlie end wieder an andere Flash Filme weiterzugeben Es gibt zahlreiche verschiedene Technologien und Programmiersprachen f r server seitige Anwendungen sowohl kommerzielle als auch frei verf gbare Welche sich f r Sie anbietet h ngt vom Betriebssystem von der Webserver Software und m gli cherweise vom Angebot Ihres Webhosting Providers ab Im ersten Abschnitt dieses Kapitels werden diverse Plattformen f r Server Anwendungen im Vergleich zuei nander vorgestellt anschlie end wird die beliebte frei verf gbare Sprache PHP vertieft Damit Sie auf Ihrem eigenen Rechner eine Testumgebung f r PHP Anwen dungen zur Verf gung haben wird in diesem Zusammenhang auch die Einrichtung des Webservers Apache und der PHP Sprachumgebung erl utert Server Technologien im Vergleich Von der grundlegenden Idee her funktionieren alle Technologien f r Webserver Anwendungen gleich Der Webserver bermittelt Formulardaten die ein Benutzer eingegeben hat an ein separates Programm Dieses Programm verarbeitet diese Daten und erzeugt daraus oft mi
222. re kommen Weisen Sie ihnen hier dieselben Skripte zu wie unter Punkt 2 212 Kapitel 6 Interaktivit t durch ActionScript Wenn Sie nun den Befehl Film testen ausf hren werden Sie feststellen dass Sie die beiden Animationen unabh ngig voneinander steuern k nnen die Zeitleiste der Movieclip Instanz und die des Hauptfilms werden separat durch Schaltfl chen gesteuert Die Movieclip Hierarchie Damit Movieclips berhaupt von au en angesprochen werden k nnen ben tigen sie einen Instanznamen Dieser wird links oben in der Eigenschaftenleiste eingetra gen Achten Sie darauf dass Sie sich auch bei Instanznamen an die weiter oben beschriebenen Regeln f r Bezeichner halten Wenn der Hauptfilm Movieclip Instanzen enth lt deren zugrunde liegende Sym bole ihrerseits ebenfalls Instanzen anderer Symbole enthalten ergibt sich daraus eine verschachtelte Movieclip Hierarchie Sie k nnen von jeder Zeitleiste aus jede andere Zeitleiste ansprechen die Herangehensweise hnelt den verschachtelten Ordnern in einem Dateisystem Angenommen auf der B hne des Hauptfilms befindet sich eine Movieclip Instanz namens clipl und eine weitere namens clip2 Das Symbol auf dem clipl basiert enth lt wiederum eine Instanz mit dem Instanznamen unterclip Schematisch ergibt sich also folgende Struktur Haupt film clip1 unterclip clip2 Es gibt grunds tzlich zwei verschiedene Methoden andere Zeitleisten anzuspre chen
223. rem Rechner testen bevor Sie sie ver ffent lichen Deshalb wird in diesem Abschnitt beschrieben wie Sie eine Testumgebung f r PHP Anwendungen einrichten k nnen Dazu werden drei Softwarekomponen ten ben tigt Ein Webserver PHP arbeitet mit so gut wie allen g ngigen Webservern zusam men Hier wird die Installation und Inbetriebnahme von Apache beschrieben weil es sich um freie Software handelt und weil er der beliebteste und am wei testen verbreitete Webserver berhaupt ist In diesem Abschnitt wird in K rze das Wichtigste ber Apache erl utert e PHP Die Sprache PHP ist ebenfalls Open Source Software Sie wird f r zahlrei che Plattformen und Betriebssysteme angeboten In diesem Abschnitt wird die Einrichtung der neuesten Version PHP 5 unter Windows und Mac OS X in Zusammenarbeit mit dem Webserver Apache beschrieben e Eine Datenbank Zwar ben tigt nicht jede Webanwendung Zugriff auf ein Datenbanksystem aber sobald mehr als einige wenige Daten zusammenkom men gibt es keine effizientere Speicherm glichkeit Deshalb setzen die meisten Produktkataloge Foren oder G steb cher auf eine Datenbank auf PHP kann auf beinahe jede existierende Datenbank zugreifen Die h ufigste Wahl ist allerdings das freie Datenbanksystem MySQL so dass diese Kombination hier beschrieben wird beschriebenen Schritte deutlich abk rzen Unter http www apa chefriends org de k nnen Sie sich das freie Paket XAMPP herunterladen Es hande
224. rgestellt werden Die einfachste Sorte von allen ist die while Schleife Genau wie eine if Fallentschei dung berpr ft sie zun chst eine Bedingung bevor sie die von ihr abh ngige Anweisung oder den Anweisungsblock ausf hrt Nach der Ausf hrung wird die Bedingung allerdings erneut berpr ft und dies so lange bis die Bedingung falsch ist Das folgende Beispiel gibt die Zahlen von 1 bis 10 im Ausgabefenster aus ActionScript Grundelemente 207 veri 0 while i lt 10 i trace Bin jetzt bei i Da die Bedingung berpr ft wird bevor die abh ngigen Anweisungen der so genannte Schleifenrumpf ausgef hrt werden wird die while Anweisung als kopfge steuerte Schleife bezeichnet Wenn die Bedingung von Anfang an nicht zutrifft kann es vorkommen dass der Schleifenrumpf gar nicht ausgef hrt wird Das entgegengesetzte Modell die fu gesteuerte Schleife wird dagegen immer min destens einmal ausgef hrt weil die Bedingung erst nach der Ausf hrung gepr ft wird Sie besitzt folgende Syntax do Anweisung en while Ausdruck Fu gesteuerte Schleifen sind immer dann n tzlich wenn die zu pr fende Bedin gung sich erst durch den Schleifenrumpf selbst ergibt beispielsweise bei der Uber pr fung von Eingaben Das folgende Beispiel z hlt wie lange es dauert eine 6 zu w rfeln var wurf Bisher 0 Versuche var versuche 0 W rfeln bis die 6 kommt do versuche W rfelwurf wurf
225. rsehen w hrend auf actions die gezeigten Skripte erstellt werden m ssen Tabelle 6 8 Erstellen Sie in den angegebenen Frames Schl sselbilder mit Markierungen bzw Skripten BildNr Ebene Markierung Skript 2 actions Initialisierung var is playing true var prev_frame prodo6 var next_frame prodo1 3 labels Markierung start 12 labels Markierung prod01 12 actions prev frame prod07 next_frame prodo2 42 labels Markierung prod02 42 actions prev frame prodo1 next_frame prod03 72 labels Markierung prod03 72 actions prev frame prodo2 next_frame prod04 102 labels Markierung prod04 102 actions prev frame prodo3 next_frame prodo5 132 labels Markierung prod05 132 actions prev frame prod04 next_frame prodo6 162 labels Markierung prod06 162 actions prev frame prodo5 next_frame prod07 192 labels Markierung prod07 192 actions prev_frame prodo6 next_frame prodo1 212 actions gotoAndPlay start Praxisbeispiel Navigation interaktive Demo und Spiel 221 Erstellen Sie als N chstes eine neue Ebene namens buttons Ziehen Sie die vier But tons in der oben angegebenen Reihenfolge auf die B hne und zwar mit etwas Abstand unterhalb des Logos Weisen Sie dem Button back das folgende Skript zu on release if is_playing gotoAndPlay prev_frame else gotoAndStop prev_frame prev_frame ist eine
226. rsten Wahl f r multimediales Webdesign Dennoch stellen sie nur die eine H lfte seiner F higkeiten dar Erst die eingebaute Programmiersprache Action Script erm glicht das Erstellen interaktiver Webanwendungen mit Flash In diesem Kapitel lernen Sie die wichtigsten Grundz ge der Steuerung von Flash Filmen und ihren Inhalten durch ActionScript kennen der zu allen Themen aus dem Theorieteil dieses Kapitels komplette Beispielfilme enth lt Dar ber hinaus enth lt er ein Unterverzeichnis namens zusatz mit Beispielen und Dokumenten zu fortgeschrittenen ActionScript Themen die platztechnisch und konzeptionell nicht in dieses Buch passen u Auf der CD zum Buch finden Sie den speziellen Ordner actionscript u ActionScript im berblick Bis zur Flash Version 3 0 gab es ActionScript noch nicht Schl sselbilder und Schaltfl chen lie en sich lediglich mit einigen vorgefertigten Aktionen aus einem Drop down Men versehen Diese erm glichten nicht viel mehr als den Film anzu halten und weiterzuspielen zu einem angegebenen Bild zu springen oder einen anderen Flash Film beziehungsweise eine andere HTML Datei in den Browser zu 171 laden Die Interaktivit t von Flash ging mit anderen Worten nicht sehr weit ber das hinaus was sich mit blo en HTML Hyperlinks bewerkstelligen l sst Auch in Version 4 wurden die Aktionen noch nicht als ActionScript bezeichnet und die Eingabe war weiterhin nur per Men m glich Dennoch br
227. rtiert stattdes sen wird ein Array mit den Indizes nicht den Elementen in Sortierreihenfolge als Wert zur ckgegeben Beispiel var c b sort Array RETURNINDEXEDARRAY Wert von b bleibt unver ndert Wert von c 2 0 1 4 3 e Array NUMERIC oder 16 Das Array wird numerisch statt alphabetisch sortiert Beispiel a sort Array NUMERIC Neuer Wert 1 11 12 20 20 100 Wenn Sie mehrere Optionen verwenden m chten k nnen sie diese durch bitweise Oder kombinieren oder auch addieren was aber langsamer ist Das folgende Beispiel sortiert das Array a numerisch und absteigend a sort Array DESCENDING Array NUMERIC Neuer Wert 100 20 20 12 11 1 Alternative Schreibweisen a sort 2 16 oder gar a sort 18 Beachten Sie dass es noch weitere Syntaxformen von sort gibt die aber den Rah men dieses Buches sprengen w rden Ein letzter interessanter Bestandteil eines Arrays ist seine Eigenschaft length die angibt wie viele Elemente das Array enth lt Im obigen Beispiel w rde a length den Wert 6 zur ckliefern Operationen Um Literale und Variablen zu komplexen Ausdr cken zu verkn pfen werden Ope ratoren verwendet Viele dieser Zeichen f r Verkn pfungsvorschriften kennen Sie im Alltag aus der Mathematik 3 7 besagt dass die Werte 3 und 7 addiert werden sol ActionScript Grundelemente 199 len so dass der gesamte Ausdruck den Wert 10 besitzt Dass einige Operatoren st r ke
228. s hier fin den Sie die Schaltfl chensymbole back pause play und forward Designtechnisch sind diese bereits fertig Das einzige was ihnen noch fehlt ist eine durchgehende Fl che im Frame Aktiv Da einige von ihnen L cken aufweisen ist diese wichtig Doppelklicken Sie also in der Bibliothek auf jeden einzelnen der vier Buttons F gen Sie in deren Frame Aktiv mit F7 ein leeres Schl sselbild ein Aktivieren Sie den Zwiebelschaleneffekt damit der Inhalt des vorigen Frames durchscheint Nun k n nen Sie einfach ein Quadrat zeichnen das den aktiven Bereich komplett abdeckt Kehren Sie zum Hauptfilm zur ck Markieren Sie die Schl sselbilder im ersten Bild jeder Ebene am einfachsten indem Sie zuerst das Schl sselbild in der obersten Ebene anklicken und dann mit gedr ckter Umschalt Taste das unterste Ziehen Sie 220 Kapitel 6 Interaktivit t durch ActionScript dann s mtliche markierten Schl sselbilder um zwei Frames nach rechts Markieren Sie anschlie end auf dieselbe Weise Bild 4 jeder Ebene nun unmittelbar rechts von den verschobenen Schl sselbildern Dr cken Sie zweimal F5 um die Dauer aller Ebenen wieder zu verl ngern Legen Sie zwei neue Ebenen mit den Bezeichnungen actions beziehungsweise labels an In Tabelle 6 8 finden Sie eine bersicht dar ber auf welchen Frames dieser Ebenen Sie Schl sselbilder einrichten m ssen Auf der Ebene labels werden die Schl sselbilder mit den angegebenen Bildmarkierungen ve
229. s Attributs method wird eine der beiden weiter oben ausf hrlich beschriebenen Versandmethoden ausgew hlt Webformulare im berblick 287 e enctype MIME Type Bei Verwendung der Methode POST k nnen Sie hier den Datentyp angeben Standard ist application x www form urlencoded URL Codierung wenn Sie file Felder zum Dateiversand verwenden m chten m ssen Sie dagegen multipart form data angeben Zwischen lt form gt und lt form gt k nnen Sie verschiedene Formular Bedienelemente wie Textfelder oder Schaltfl chen einf gen daneben sind aber auch normale HTML Elemente zul ssig beispielsweise Tabellen zur Formatierung oder normaler Text f r die Beschriftung Die meisten Eingabeelemente werden durch das Tag lt input gt bereitgestellt in dem das Attribut type bestimmt um welche Sorte von Eingabeelement es sich handelt Damit dieser Abschnitt nicht ausufert lernen Sie hier lediglich f nf Arten von lt input gt Objekten kennen Beachten Sie aber dass es noch weitere Formularele mente gibt sowohl andere lt input gt Typen als auch Elemente die mit Hilfe anderer Tags erzeugt werden Der wichtigste Bestandteil eines Formulars ist der Absendeknopf Wenn er ange klickt wird werden die Formulardaten an die im lt form gt Tag angegebene action URL versandt Das zugeh rige lt input gt Tag sieht folgenderma en aus lt input type submit value Beschriftung gt Das folgende Beispiel tr gt die Beschriftung Absch
230. s Tanks 50 1 var verbrauch 10 Verbrauch 10 1 100 km idealer Neuwagen voller Tank O km var tankFuellung maxTankFuellung var kmStand 0 Funktionen Fahren und Tanken greifen auf globale Variablen zu function tanken 1 Bus Nur tanken falls die gew nschte Menge in den Tank passt f tankFuellung 1 lt maxTankFuellung tankFuellung 1 H function fahren km Nur fahren falls der Sprit reicht if km verbrauch 100 lt tankFuellung kmStand km tankFuellung km verbrauch 100 Funktion auskunft Ausgabe vereinfachen function auskunft trace Das Auto hat tankFuellung I im Tank und den Kilometerstand kmStand Anfangszustand auskunft 250 km fahren fahren 250 auskunft 10 1 tanken tanken 10 auskunft Die ActionScript Anweisungen in diesem Beispiel m ssten Sie verstehen wenn Sie das vorige Kapitel durchgearbeitet haben Objektorientierte Programmierung mit ActionScript 231 F hren Sie das Beispiel mit Hilfe von Steuerung gt Film testen STRG ENTER aus Es erzeugt durch Aufruf der Funktion auskunft folgende drei Zeilen im Aus gabefenster Das Auto hat 50 1l im Tank und den Kilometerstand O Das Auto hat 25 1l im Tank und den Kilometerstand 250 Das Auto hat 35 1l im Tank und den Kilometerstand 250 Solange Sie nur ein Auto verwalten m chten bleibt die imperative L sung noch ein
231. sch l sst sich der Ablauf des Beispiels also durch das Flussdiagramm in Abbildung 6 1 darstellen In einem solchen Diagramm stehen rechteckige Felder f r einen linearen Ablauf w hrend rautenf rmige K sten jeweis eine Fallentscheidung bezeichnen Erstellen Sie in einem neuen Dokument zun chst drei Ebenen namens animation buttons und action F gen Sie auf der Ebene action in Bild 2 ein Schl sselbild ein einige ltere Flash Player Versionen f hren im allerersten Frame eines Films kein ActionScript aus Achten Sie darauf dass das neue Schl sselbild in der Zeitleiste noch markiert ist und ffnen Sie dann das Bedienfeld Aktionen Fenster gt Aktio nen oder F9 Deaktivieren Sie hier gegebenenfalls die Skripthilfe damit Sie ActionScript per Hand editieren k nnen und geben Sie dann folgenden Code ein var turns 0 Diese Anweisung erstellt eine Variable einen benannten Speicherplatz mit dem Namen turns und speichert den Wert 0 darin Diese Variable wird benutzt um die drei Animationsdurchg nge zu z hlen Ein erstes Beispiel 173 Anzahl der Durchg nge turns 0 turns um 1 erh hen Animation abspielen Button nochmal gedr ckt Nein Button ende gedr ckt Nein Ende anzeigen Bild 2 Bild 3 Bild 40 Bild 50 Abbildung 6 1 Das Flussdiagramm erl utert den Ablauf des ersten Beispiels 174 Kapitel 6 Interaktivit t durch ActionScript Ein kleines a a
232. sehen Sie ihn mit folgenden ActionScript Anweisungen onClipEvent enterframe if _root _framesloaded root totalframes _root play Nat rlich k nnen Sie statt eines leeren Movieclips auch ein Symbol mit einer klei nen wird geladen Animation oder hnliches verwenden um die Wartezeit unter haltsamer zu gestalten Sehr beliebt sind auch Fortschrittsbalken Wenn der Movieclip gleichzeitig den Ladefortschritt anzeigen soll ben tigt er als Inhalt einen waagerechten Balken der sich vom Registrierpunkt aus nach rechts fortsetzt Diese Platzierung sorgt daf r dass er in die richtige Richtung w chst Tauschen Sie das obige Skript zum Schluss gegen das folgende aus onClipEvent enterframe if _root _framesloaded root totalframes _root play else this _xscale root getBytesLoaded root getBytesTotal 100 Web Links mit getURL Wenn eine SWF Datei in einem Browser angezeigt wird kann sie genau wie ein HTML Dokument daf r sorgen dass der Browser ein anderes Dokument anfor dert Daf r ist die Funktion getURL zust ndig brigens k nnen dynamische Text felder sogar regul re HTML Hyperlinks enthalten dies wird im n chsten Kapitel angesprochen getURL ben tigt ein bis drei Argumente die allgemeine Syntax sieht so aus getURL URL Ziel Methode Die URL ist zwingend erforderlich es handelt sich nat rlich um die Adresse der Res source die der Browser anford
233. seine Arbeit beendet hat folgen die beiden blichen Befehle zum Kompilieren und Installieren make make install Ihre Apache Konfigurationsdatei sollte nun automatisch um folgende Zeile erg nzt worden sein LoadModule php5_module modules libphp5 so Sie m ssen noch folgende Zeile hinzuf gen damit Dateien mit der Endung php von diesem Modul verarbeitet werden AddType application x httpd php php Suchen Sie dazu einfach die Stelle in httpd conf wo sich weitere AddType Direktiven befinden Auf diese Weise werden PHP Skripte in der gesamten Website ausge f hrt Als N chstes m ssen Sie Apache neu starten Danach k nnen Sie das folgende kurze Skript schreiben um zu testen ob PHP ordnungsgem installiert wurde lt php phpinfo gt Speichern Sie es unter einem Namen mit der Endung php unterhalb Ihrer Document Root z B als test php und rufen Sie die entsprechende URL mit Ihrem Browser auf http 127 0 0 1V test php Wenn alles geklappt hat sehen Sie nun eine umfangreiche Tabelle die genaue Auskunft ber Ihre PHP und Apache Konfiguration gibt Installation unter Windows Die PHP Installation auf Windows Rechnern ist ein wenig aufw ndiger als unter UNIX aber daf r geht sie schneller vonstatten weil Sie das Paket nicht selbst zu kompilieren brauchen F hren Sie einfach folgende Schritte aus 1 Entpacken Sie zun chst die ZIP Datei php 5 1 2 Win32 zip in Ihr gew nschtes PHP Verzeichnis die f
234. ss mit einem Buchstaben a z A Z keine Umlaute oder _ Unterstrich beginnen darauf k nnen beliebig viele dieser Zei chen sowie Ziffern von 0 bis 9 folgen G ltige Bezeichner sind also beispielsweise test3 abc oder a_4 Achten Sie bei der Wahl von Bezeichnern auf aussagekr ftige Namen beispielsweise sollte eine Punktzahl eher punkte hei en und nicht p Variablen und Funktionsbezeichner sollten mit einem Kleinbuchstaben beginnen mit Gro buchstaben fangen blicherweise die Namen von Klassen an die Sie im n chsten Kapitel kennen lernen Wenn Ihre Bezeichner aus mehreren W rtern bestehen sollte jedes Anschlusswort mit einem Gro buchstaben beginnen Bei spiele meinePunkte autoKmStand Dies macht die Namen lesbarer und hilft Ihnen sich die Schreibweise zu merken Eine ltere Konvention benutzt nur Kleinbuchsta ben und trennt die einzelnen W rter durch Unterstriche meine_punkte auto_km_ stand Es ist egal welche der beiden Varianten Sie w hlen Sie sollten sich nur kon sequent f r eine von ihnen entscheiden Selbstverst ndlich d rfen Ihre eigenen Bezeichner nicht mit den Namen der bestehenden ActionScript Schl sselw rter Funktionen und Objekte kollidieren Gl cklicherweise werden Sie aber vom ActionScript Compiler gewarnt falls Ihnen dies passieren sollte Kommentare In jeder Programmiersprache gibt es eine M glichkeit Kommentare zu setzen Dies sind Textzeilen oder bl cke die vom Rechner ignoriert werden
235. ssional 8 ist noch mit zahlreichen weiteren Komponenten ausgestattet die nicht nur die grafische Oberfl che betreffen sondern beispielsweise auch die automatische Anbindung an externe Datenquellen Zudem gibt es Komponenten von Drittanbietern mit denen Sie den Funktionsumfang von Flash nochmals erwei tern k nnen Tabelle 9 2 Die vorgefertigten UI Komponenten von Flash 8 Komponente Bedeutung ActionScript Grundlagen Button einfache Schaltfl che on click verarbeitet Klick Ereignis Checkbox Auswahlfeld Instanzname selected ist true wenn ange kreuzt sonst false ComboBox Pull down Men mit Texteingabe Instanzname text enth lt den ausgew hlten bzw eingegebenen Text Label zus tzliche Beschriftung List Liste zur Auswahl eines Eintrags Instanzname selectedIndex liefert gew hlte Zeilennummer Loader Anzeigefeld f r SWF oder JPEG Dateien Instanzname contentPath kann die URL des Inhalts zugewiesen werden NumericStepper Auswahlfeld f r das Durchbl ttern von Instanzname value gibt den aktuell gew hlten Zahlenfolgen Wert zur ck ProgressBar Fortschrittsbalken Instanzname source gibt das Objekt an dessen Ladevorgang angezeigt wird RadioButton Optionsfeld Eigenschaft groupName gemeinsamer Gruppen name f r mehrere RadioButtons Gruppenname selectedData gibt den Datenwert des ausge w hlten Buttons aus der Gruppe zur ck ScrollPane Anzeigefeld mit automatischen Rollbalken siehe Loader TextArea mehrzeiliges Te
236. st der alternative numerische Datentyp int derim Gegensatz zu Number nur ganze Zahlen Integer speichert Durch die Kapazit t von 32 Bit betr gt der Wertebereich 2 147 483 648 bis 2 147 483 647 die Verarbei tung erfolgt wesentlich schneller als bei Flie kommazahlen Der alternative Typ uint Unsigned Integer erlaubt nur positive Ganzzahlen zwischen 0 und 4 294 967 295 Eine lang erwartete Erweiterung ist die Unterst tzung regul rer Ausdr cke gem ECMAScript 3 Spezifikation Regul re Ausdr cke Regular Expressions oder kurz Regexp bieten eine vor allem in der UNIX Welt bekannte sehr leistungsf hige Syn tax f r Suchmuster Das folgende sehr kurze Beispiel berpr ft ob die Variable num mer eine g ltige ISBN Nummer mit Bindestrichen oder auch ohne enth lt Die ISBN des vorliegenden Buchs var nummer Praxiswissen Flash 8 3 89721 450 4 if nummer match 0 9 0 9 5 0o 9 3 0o 9X trace G ltige ISBN gefunden else trace Keine ISBN enthalten h Die neue String Methode match berpr ft ob der angegebene regul re Ausdruck auf den String zutrifft Der Ausdruck selbst bedarf einiger Erkl rung Eckige Klam mern umschlie en eine Gruppe von Zeichen von denen eines an der angegebenen Stelle stehen muss Der Bindestrich dient dabei der Bereichsbildung 09 steht also f r eines der beiden Zeichen O oder 9 w hrend 0 9 eine beliebige Ziffer repr sentiert Eine Zahl in geschweiften
237. stand wird Datensatz genannt englisch Record Wenn Sie aus einer Tabelle heraus auf Daten s tze einer anderen Tabelle verweisen m chten ben tigen diese Datens tze je ein Feld mit einem einmaligen Wert Dieses spezielle Feld hei t Prim rschl ssel Der Prim rschl ssel wird oft durch einfaches Durchnummerieren gebildet Einige Objekte besitzen dagegen eine Art nat rlichen Prim rschl ssel Bei Autos ist dies etwa das amtliche Kennzeichen bei B chern dagegen die ISBN Fast alle relationalen Datenbanken k nnen ber eine Sprache namens SQL Struc tured Query Language gesteuert werden MySQL leitet sogar seinen Namen von dieser Tatsache ab Es handelt sich um eine leicht zu erlernende m chtige Sprache in der so genannte Abfragen formuliert werden Damit k nnen Sie Tabellen erstel len ndern und vor allem Informationen daraus erhalten Erste Schritte mit MySQL Selbstverst ndlich w rde eine systematische Einf hrung in MySQL in diesem Kapi zu weit f hren Hier finden Sie nur ein kurzes Beispiel das Sie direkt eintippen tel k nnen wenn Sie den oben erw hnten mysql Client starten mysql u root p Passwort eingeben 322 Kapitel 10 Interaktion mit Webserver Anwendungen Das Beispiel erstellt die Datenbank musik mit zwei Tabellen interpreten mit den Feldern int_nr und int_name sowie cds mit den Feldern cd_nr cd_interpret cd titel cd_jahr und cd_songs Anzahl der Songs Geben Sie dazu Fo
238. stanz aufrufen Wenn Sie die globale Funktion verwenden m ssen Sie zwei Parameter angeben n mlich die URL der gew nschten SWF Datei sowie einen Bezug auf die Instanz in die diese hineingela den werden soll Die Syntax der Funktion sieht also folgenderma en aus loadMovie SWF URL Instanz Wenn Sie also ber diese Syntax eine Datei namens test swf aus dem aktuellen Ver zeichnis in die Movieclip Instanz box im Hauptfilm laden m chten sieht die ent sprechende Anweisung so aus loadMovie test swf _root box Die Methoden Syntax ist praktischer Instanz loadMovie SWF URL In dieser Schreibweise sieht das obige Beispiel folgenderma en aus _root box loadMovie test swf Die Methode ist brigens auch sicherer als die globale Funktion Wenn die ange sprochene Movieclip Instanz nicht existieren sollte passiert nichts weiter Bei der Funktion wird dagegen der aktuelle Movieclip im ung nstigsten Fall also der Hauptfilm ersetzt Die linke obere Ecke des nachgeladenen Films befindet sich brigens auf dem Registrierpunkt der Movieclip Instanz falls Sie die ganze B hne exakt abdecken m chten m ssen Sie den Clip also so platzieren dass sein Registrierpunkt auf der linken oberen B hnenecke liegt 268 Kapitel 8 Mit ActionScript auf externe Daten zugreifen Wenn Sie einen Film in eine Movieclip Instanz hineinladen verh lt er sich ein wenig anders als auf einer eigenen Stufe Zum einen kann er sich hinter eingeb
239. sten in das erste Schl sselbild der gew nschten Zeitleiste Sie werden durch das Schl sselwort function eingeleitet und umschlie en grunds tzlich einen Anweisungsblock Das folgende Beispiel zeigt eine Funktion die nichts weiter tut als ihren eigenen Aufruf im Ausgabefenster zu best tigen function test trace test wurde aufgerufen Geben Sie nun an einer anderen Stelle in Ihrem Code folgende Anweisung ein test Dies ist ein Aufruf von test der die erw hnte Ausgabe erzeugt Noch n tzlicher sind allerdings Funktionen die Werte entgegennehmen Zu die sem Zweck k nnen Sie in den Klammern hinter dem Funktionsnamen so genannte Parametervariablen einsetzen Das folgende Beispiel gibt die gr ere von zwei ber gebenen Zahlen aus 210 Kapitel 6 Interaktivit t durch ActionScript function groesser z1 z1 if z1 gt z2 trace z1 ist groesser else if z2 gt z1 trace z2 ist groesser else trace Die Zahlen sind gleich gro Diese Funktion wird nat rlich mit zwei Argumenten aufgerufen groesser 5 7 liefert die Ausgabe 7 ist groesser Umgekehrt kann eine Funktion auch einen Wert zur ckgeben so dass Sie ihren Aufruf in einen Ausdruck einsetzen k nnen Dazu wird das Schl sselwort return verwendet das die Funktion sofort verl sst und den entsprechenden R ckgabewert zur ckliefert Das folgende Beispiel gibt true zur ck wenn die bergebene
240. stieg von Ulrich G nther das in derselben Reihe beim O Reilly Verlag erschienen ist wie der vorliegende Band In den folgenden Abschnitten dieses Kapitels erfahren Sie zun chst wie Sie Apache und PHP auf Ihrem Rechner einrichten k nnen Anschlie end wird erl utert wie Ihre Flash Filme mit PHP Anwendungen zusammenarbeiten k nnen Java Servlets und JSP Die Programmiersprache Java wurde 1995 von Sun Microsystems eingef hrt Im Gegensatz zu Sprachen wie C oder C braucht ein Java Programm nur einmal kompiliert bersetzt zu werden weil es nicht direkt vom Prozessor eines konkre ten Rechners sondern von einer so genannten virtuellen Maschine ausgef hrt wird die als Software f r zahlreiche Plattformen und Betriebssysteme sowie f r Web browser verf gbar ist Die beliebteste Anwendung von Java waren urspr nglich so genannte Applets kleine Programme die direkt in Webseiten eingebettet und von der virtuellen Maschine des Browsers ausgef hrt wurden Flash und hnliche Tech nologien haben die Bedeutung von Applets allerdings stark zur ckgehen lassen das wichtigste Einsatzgebiet von Java ist heutzutage die Programmierung von Enter prise Anwendungen also verteilten datenbankgest tzten Netzwerkanwendungen f r meist gr ere Unternehmen F r Webserver Anwendungen gibt es gleich zwei Java Technologien Java Servlets sind eigenst ndige Java Programme die eine Webseite als Ausgabe erzeugen sie eignen sich also vor allem
241. sziplin beim Programmieren Sie k nnen der Variablen nur noch Werte zuweisen die dem festgelegten Typ entspre chen und auch nur noch Funktionen aufrufen die einen passenden Wert zur ckge ben Auf diese Weise k nnen Sie Fehler vermeiden beziehungsweise schneller finden der B hne anzuzeigen und umgekehrt eine Benutzereingabe in einer s Variablen zu speichern W hlen Sie das Textwerkzeug aus der Werk zeugpalette und stellen Sie in der Eigenschaftenleiste den Texttyp Dynamischer Text beziehungsweise Eingabetext ein Unter Var k n nen Sie dann den Namen einer Variablen eingeben mit der die Text box automatisch verkn pft wird Der Wert den Sie der Variablen zuweisen erscheint als Inhalt des Textfeldes Bei Eingabetext k nnen Sie die Eingabe des Benutzers aus der Variablen auslesen Dieses Thema wird in Kapitel 9 Formulare erstellen weiter vertieft u In ActionScript ist es besonders leicht den Wert einer Variablen auf 196 Kapitel 6 Interaktivit t durch ActionScript Arrays Ein Array ist eine spezielle Variable die nicht nur einen einzelnen Wert enthalten kann sondern eine ganze Liste von Werten Die Position eines Wertes im Array wird durch einen Index bestimmt dies ist meistens eine Zahl wobei das erste Ele ment eines Arrays den Index 0 hat Um ein Array zu erzeugen wird der Konstruktor new Array aufgerufen Schreiben Sie Folgendes um ein leeres Array zu erhalten das erst sp ter mit Werten gef llt wir
242. t der zur ckgegeben wird wenn das Feld nicht vorhanden oder leer ist Zun chst wird aus dem Array SERVER die Umge bungsvariable REQUEST_METHOD ausgelesen sie enth lt je nach Zugriffsmethode einen der Werte GET oder POST Anschlie end erfolgt der Versuch die gew nschte Variable aus dem passenden Array auszulesen Zu guter Letzt liefert return den gefundenen Wert zur ck Um nun die Variablen vendor und product mit Hilfe dieser Funktion zu lesen k n nen Sie die beiden folgenden Zeilen verwenden vendor cgiParam vendor product cgiParam product Damit Ihnen diese n tzliche Funktion jederzeit zur Verf gung steht sollten Sie sie in einer externen PHP Include Datei abspeichern Solche Dateien haben f r gew hnlich die Dateiendung inc php auch darin m ssen Sie PHP Anweisungen in einen lt php gt Block setzen Sie k nnen eine solche Datei wie folgt einbetten include mylib inc php PHP Daten in Flash Filme laden W hrend Sie nun bereits wissen wie Ihre PHP Anwendung Flash Daten entgegen nehmen kann ist der umgekehrte Weg noch unbekannt Die zust ndigen loadVari ables Funktionen haben Sie zwar bereits kennen gelernt in Kapitel 8 wurde aber lediglich ihre Verwendung mit statischen Textdateien demonstriert Damit Sie auch dynamische Daten damit laden k nnen muss ein entsprechendes Skript das pas sende Textformat als Ausgabe erzeugen Dazu m ssen Sie zun chst den MIME Type text pla
243. t x childNodes length j Rekursiver Aufruf f r den aktuellen Kindknoten row getMenultems x childNodes j indent 1 row Aktuelle Zeilennummer zur ckgeben return row Den Original Movieclip unsichtbar machen _root item visible false Neues XML Objekt erzeugen var menu XML new XML xML Datei laden menu load http localhost menu xml Sobald die Datei fertig geladen ist menu onLoad function success if success Im Erfolgsfall den XML Baum durcharbeiten getMenultems menu 0 0 else Andernfalls Fehlermeldung trace Sorry Kein Men l Die Ausgabe des Films k nnen Sie in Abbildung 10 2 betrachten In1x Datei Ansicht Steuerelement Debuggen OReilly Thema Web Thema Web Sascha Kersken Abbildung 10 2 Das XML Men im Einsatz ActionScriptundXML 341 Praxisbeispiel Bestellannahme und G stebuch Wie Sie bemerkt haben d rften enth lt dieses Kapitel viele Beschreibungen allge meiner Konzepte und Vorbereitungen aber nur wenig an theoretischen Grundlagen zur Zusammenarbeit zwischen PHP und Flash selbst Das liegt daran dass die Schnittstelle selbst im Grunde sehr einfach ist und immer auf dieselbe Weise funk tioniert Umso wichtiger ist es deshalb dass Sie konkrete Beispiele f r ihren Einsatz kennen lernen Daher erh lt die Website des FlashRock Music Shop nun den letz ten Schliff Es wird eine PHP Anwendung
244. t Hilfe externer Datenquellen wie zum Beispiel einer Datenbank Ausgabedaten die der Webserver wieder an den Browser des Benutzers sendet Auf diese Weise entstehen dynamisch erzeugte Dokumente meist im HTML Format Trotz dieser Gemeinsamkeit bestehen bedeutende Unter 309 schiede zwischen den diversen Technologien Einige von ihnen werden in den fol genden Unterabschnitten angesprochen PHP eine der beliebtesten wird in den restlichen Abschnitten dieses Kapitels genauer vorgestellt Was die Zusammenarbeit mit Flash angeht funktionieren Server Anwendungen brigens ein wenig anders Normalerweise geht es nicht darum dass der Server aus dynamischen Daten vollst ndige SWF Dateien erzeugt Stattdessen funktioniert die Kommunikation in der Regel folgenderma en Ein Flash Film stellt der Server Anwendung Daten ber die im vorigen Kapitel besprochenen Formulare zur Verf gung bei der Dateneingabe gibt es also keinen prinzipiellen Unterschied zu Weban wendungen mit HTML Benutzeroberfl che Die Daten die die Anwendung generiert werden allerdings an einen bereits laufenden Flash Film geliefert Dazu dienen die bereits in Kapitel 8 vorgestellten Anweisungen loadVariablesNum bezie hungsweise loadVariables nur dass in diesem Fall keine statische Textdatei sondern eine Server Anwendung als Quell URL dient Neben dieser klassischen Form der Webanwendung gibt es inzwischen einige modernere Formen Fast alle verwenden zur Komm
245. t serverseitigen Skripten die diese Variablen dynamisch generie ren Dieses Thema wird ausf hrlich in Kapitel 10 besprochen Damit eine Textdatei als Quelle f r Flash Variablen in Frage kommt m ssen diese in der Form Var1 Wert1 amp Var2 Wert2 drinstehen Zu allem berfluss m ssen zahl 276 Kapitel 8 Mit ActionScript auf externe Daten zugreifen reiche Sonderzeichen in einer solchen Datei speziell kodiert werden URL Ko dierung Aus dem Leerzeichen wird ein die meisten Satzzeichen oder Umlaute werden durch ein Prozentzeichen und ihren hexadezimalen Zeichencode angege ben Beispielsweise steht FC f r w hrend 22 das Anf hrungszeichen repr sen tiert Speichern Sie als Beispiel den folgenden Textblock unter dem Namen vars txt hersteller Fender modell Stratocaster baujahr 1980 amp farbe rot Weisen Sie einem Bild in einem Flash Film folgendes Skript zu oadVariablesNum vars txt 0 trace Hersteller hersteller trace Modell modell trace Baujahr baujahr trace Farbe farbe Die Funktion loadVariablesNum besitzt folgende allgemeine Syntax oadVariablesNum URL Stufe Methode Auch hier k nnen Sie also optional GET oder POST angeben um zun chst die vor handenen Variablen an die angesprochene URL zu senden In den n chsten beiden Kapiteln erfahren Sie wie sich unter anderem mit dieser Funktion Formulare erstellen lassen Das zweite Argument ist die
246. te Datum im so genannten RFC 1123 Format Tue Nov 29 08 49 02 GMT 0200 2005 Fast alle get Methoden besitzen brigens auch eine zugeh rige set Methode mit der Sie die Uhr verstellen k nnen Selbstverst ndlich gibt es keine Methode namens setDay dader Wochentag vom Datum abh ngt Das Praxisbeispiel dieses Kapitels ist die von Date abgeleitete Klasse CustomDate Sie erweitert das Angebot der Standardklasse um zahlreiche interessante Methoden Es werden mehrsprachige Textdarstellungen von Wochentagen und Monaten hinzu gef gt Au erdem unterst tzt die Klasse so genannte strftime Formate diese Funktion aus der Standardbibliothek der Programmiersprache C setzt eine Reihe von Platzhaltern in die Bestandteile von Datum und Uhrzeit um Die Beschreibung und Benutzerdokumentation zu CustomDate finden Sie in Form ausf hrlicher Kommentare innerhalb des nachfolgenden Listings Der Kommen tarstil entspricht dem f r Java Klassen entworfenen Dokumentations Tool javadoc Auf der Website zum Buch finden Sie Links zu einigen Tools die aus solchen Kom mentaren automatisch eine HTML Dokumentation generieren class CustomDate extends Date CustomDate Version 0 1 Erweitert die eingebaute Klasse Date um Textdarstellungen von Wochentag und Monat sowie um strftime Formate Siehe http buecher lingoworld de flash8 classes author Sascha Kersken version 0 1 0 private function preo n Number S
247. te Mal starten m ssen Sie die Optionen u Benutzer name und p Passworteingabeaufforderung verwenden mysql u root p Passwort eingeben 320 Kapitel 10 Interaktion mit Webserver Anwendungen Installation unter Windows F r Windows bieten die MySQL Entwickler einen bequemen Bin r Installer an Entpacken Sie als Erstes die ZIP Datei mysql 5 0 18 win32 zip Anschlie end k n nen Sie die enthaltene Datei Setup exe per Doppelklick ausf hren Falls auf Ihrem Rechner bereits eine ltere MySQL Version existiert wird sie deinstalliert und durch die neue ersetzt die vorhandenen Datenbanken bleiben erhalten Als Erstes m ssen Sie sich den Installationsumfang aussuchen Typical die wichtigsten Kom ponenten Complete alles oder Custom freie Auswahl W hlen Sie Letzteres und klicken Sie auf dem n chsten Bildschirm auf die Schaltfl che Change wenn Sie das Installationsverzeichnis wechseln m chten Ein Klick auf Next startet anschlie Bend die Installation Nach der Installation k nnen Sie Configure the MySQL Server now w hlen um den Datenbankserver nach Ihren W nschen einzurichten beispielsweise wird er als automatisch startender Dienst installiert Der Konfigurationsdialog ist sp ter jeder zeit ber das Startmen verf gbar Beantworten Sie die Fragen f r einen Program mierrechner wie folgt 1 W hlen Sie den Installationstyp Detailed Configuration 2 Entscheiden Sie sich f r den Servertyp Developer Mac
248. tl befindet wurde bereits angespro chen Auf einem Windows Rechner gen gt es das Icon des Apache Monitors anzuklicken und Apache 2 gt Restart auszuw hlen ffnen Sie nun einen Browser auf dem Webserver Rechner und geben Sie die Adresse http 127 0 0 1 ein Wenn alles in Ordnung ist sollten Sie nun die auto matisch generierte Apache Startseite zu Gesicht bekommen Anschlie end k nnen Sie auch eigene HTML Dateien unterhalb Ihrer DocumentRoot speichern um sie sich von Apache ausliefern zu lassen Im n chsten Schritt erfahren Sie nun wie Sie PHP Unterst tzung hinzuf gen k nnen MySQL installieren Der freie Datenbankserver MySQL ist inzwischen eines der beliebtesten Daten banksysteme insbesondere f r Webanwendungen Damit PHP Anwendungen pro blemlos mit MySQL arbeiten k nnen sollten Sie MySQL vor PHP installieren In diesem Abschnitt wird die Installation der aktuellen stabilen Version 5 0 f r Win dows und UNIX Systeme beschrieben Installation auf UNIX Systemen Auf der CD ROM zum Buch sind MySQL 5 0 Bin rpakete f r Mac OS X 10 3 Jaguar und 10 4 Tiger sowie Linux Intel x86 enthalten auf der MySQL Website http www mysql com finden Sie weitere Pakete f r viele verschiedene UNIX Vari 318 Kapitel 10 Interaktion mit Webserver Anwendungen anten Wenn f r Sie nichts Passendes dabei ist m ssen Sie selbst das Quellcodepa ket kompilieren es eignet sich zur Installation auf jedem beliebigen UNIX System und
249. tp www w3 0rg 1999 xhtml lang en US xml lang en US gt lt head gt lt title gt FlashRock Music Shop Kundenumfrage lt title gt lt head gt lt body gt lt h1 gt FlashRock Music Shop lt h1 gt lt h2 gt Kundenumfrage 2006 lt h2 gt Bitte beantworten Sie kurz die folgenden Fragen damit wir unseren Service f amp uuml r Sie noch weiter verbessern k amp ouml nnen lt br gt lt br gt Unter allen Besuchern die bis zum 30 06 2006 teilnehmen verlosen wir drei Original lt b gt Fender Stratocaster lt b gt Gitarren lt br gt lt br gt lt form action method get gt lt b gt Welcher Bereich unserer Website gef amp auml llt Ihnen am besten lt b gt lt br gt lt input type radio name bgut value news gt Neuigkeiten lt br gt lt input type radio name bgut value shop gt Shop lt br gt lt input type radio name bgut value frum gt Forum lt br gt lt input type radio name bgut value kald gt Veranstaltungskalender lt br gt lt br gt lt b gt An welchen Bereichen unserer Site k amp ouml nnten wir noch etwas verbessern lt b gt lt br gt lt input type checkbox name bschl Neuigkeiten lt br gt lt input type checkbox name bschl Shop lt br gt lt input type checkbox name bschl Forum lt br gt lt input type checkbox name bschl value kald gt Veranstaltungskalender lt br gt lt br gt lt b gt Ihr Verbesserungsvorschlag lt b gt lt
250. tring O voranstellen falls n lt 10 return n lt 10 Oo n n getInternationalDayName Methode Lokalisierter Wochentagname nach ISO Sprachk rzel zz sind nur Deutsch und Englisch implementiert Englisch ist Standard er EEE RE Praxisbeispiel Eine Komfort Datumsklasse 257 param lang ISO Sprachk rzel wie en de usw t7 public function getInternationalDayName lang String String var wdays Array new Array switch lang case de wdays push Sonntag Montag Dienstag Mittwoch Donnerstag Freitag Samstag break case en default wdays push Sunday Monday Tuesday Wednesday Thursday Friday Saturday return wdays this getDay getDayName Methode Gibt den englischen Namen des Wochentags zur ck 7 public function getDayName String return this getInternationalDayName en getInternationalDayAbbreviation Methode Gibt die lokalisierte 3 Buchst Abk rzung des Wochentags zur ck param lang ISO Sprachk rzel wie en de usw public function getInternationalDayAbbreviation lang String String return this getInternationalDayName lang substring 0 3 getDayAbbreviation Methode Gibt die englische 3 Buchst Abk rzung des Wochentags zur ck public function getDayAbbreviation String return this getInternationalDayAbbreviation en getInternationalMo
251. u weit f hren Textfelderund Komponenten in Flash 299 Noch praktischer sind nat rlich Schaltfl chen die weiterscrollen solange sie gedr ckt bleiben und solange weiterer Text vorhanden ist Erstellen Sie zu diesem Zweck einen Steuerclip der folgenden Code enth lt unter der Voraussetzung dass sich vielText im Hauptfilm befindet onClipEvent enterframe if _root scrollen 1 if _root vielText scroll gt 1 _root vielText scroll else if _root scrollen 1 if _root vielText scroll lt _root vielText maxscroll _root vielText scroll Der Button f r das Rollen nach oben erh lt nun folgende neue Aktion die nur noch die Variable scrollen beeinflusst on press scrollen 1 on release scrollen 0 Im Skript des anderen Buttons wird die Variable beim Dr cken entsprechend auf 1 und beim Loslassen wieder auf 0 gesetzt on press scrollen 1 on release scrollen 0 Komponenten Seit der Version Flash MX stehen die so genannten Ul Komponenten UI bedeutet User Interface also Benutzeroberfl che zur Verf gung Anders als die blichen Flash Elemente entsprechen sie der Optik und Funktionsweise von Bedien elementen des Betriebssystems Durch die Einf hrung der Komponenten hofft Macromedia Flash st rker als Entwicklungsplattform f r professionelle Weban wendungen Rich Internet Applications zu etablieren Sie finden die Komponenten im
252. ugung von HTML Dokumenten ein wenig unterscheidet Das Praktische manchmal aber auch Un bersichtliche an PHP ist dass Sie HTML ganz normal ohne weitere Markierung und ohne Ausgabebefehle benutzen k nnen Der PHP Interpreter k mmert sich ausschlie lich um Bereiche eines Dokuments die von lt php und gt umschlossen werden Beachten Sie aber dass einige spezielle PHP Anweisungen und die zugeh rigen lt php gt Bl cke in der Datei stehen m s sen bevor die erste HTML Zeile folgt selbst ein Leerzeichen vor dem lt php ist schon zu viel Das liegt daran dass diese Anweisungen HTTP Header manipulie ren Bereits im vorigen Kapitel wurde beschrieben dass der Server diese vor dem eigentlichen Dokument sendet Beispiele f r solche Anweisungen sind header zur direkten Header Manipulation oder cookie zum Setzen von Cookies Die wichtigste PHP Anweisung ist echo ihr Argument wird an der aktuellen Position in das Ausgabedokument eingef gt Eine Besonderheit gegen ber Spra Wie PHP funktioniert gt 328 Kapitel 10 Interaktion mit Webserver Anwendungen chen wie ActionScript ist dass Sie Variablen unmittelbar in die doppelten Anf h rungszeichen von Strings aufnehmen k nnen Da in PHP alle Variablennamen mit beginnen wei der PHP Interpreter Bescheid Das folgende Beispiel erzeugt den Ausgabetext Hallo Welt als HTML Haupt berschrift lt php planet Welt echo lt h1 gt Hallo
253. und ALT 6 Neben der gezeigten Schreibweise bei der die ffnende geschweifte Klammer in derselben Zeile steht wie ihr Ausl ser hier das if gibt es auch die M glichkeit sie allein in die n chste Zeile zu setzen Sound anhalten und Sprung wenn punkte gt 100 if punkte gt 100 stopAllSounds gotoAndPlay weiter In beiden F llen wird der Inhalt der geschweiften Klammern normalerweise einge r ckt um zu kennzeichnen dass dieser Programmcode gewisserma en auf einer spezielleren Ebene stattfindet Es ist Geschmackssache f r welche der beiden Varianten Sie sich entscheiden In diesem Buch wird bei Fallentscheidungen Schlei fen und Ereignisprozeduren on und onClip vent dieselbe Zeile bei Funk tionen und Klassendefinitionen dagegen die n chste Zeile verwendet Dies ist eine weit verbreitete L sung und in den weiter oben erw hnten Autoformat Optionen finden Sie entsprechende Einstellungsm glichkeiten u In der Praxis empfiehlt es sich bei Fallentscheidungen oder Schleifen selbst eine einzelne Anweisung von vornherein in einen Block zu set zen Dies verbessert die bersichtlichkeit und verhindert Fl chtig keitsfehler wenn Sie sp ter noch eine weitere Anweisung f r diesen Kontext hinzuf gen m chten ActionScript Grundelemente 183 Bezeichner Wenn Sie selbst Variablen oder Funktionen definieren ben tigen diese einen ein deutigen Namen den Bezeichner Er mu
254. unikation XML Datenformate die auf unterschiedliche Weise verarbeitet werden k nnen Besonders starkes Wachstum verzeichnen hier die so genannten Web Services Dies sind Programm komponenten die das Web Protokoll HTTP zum Austausch von XML Steuerdaten benutzen das konkrete XML Format der Web Services hei t SOAP Simple Object Access Protocol Der Vorteil besteht darin dass eine allgemein verf gbare Kom munikationsschnittstelle benutzt wird so dass es keine Rolle mehr spielt welches Betriebssystem oder welche Programmiersprache die beteiligten Anwendungen benutzen Flash 8 besonders die Professional Variante enth lt bereits eingebaute Unterst tzung f r die XML Datenkommunikation sowie f r den SOAP Standard Einen Einstieg in das Thema XML bietet das vorliegende Kapitel Beispiele zu Web Services und einige Links finden Sie auf der Website zum Buch http buecher lingo world de flash8 CGI Das Common Gateway Interface CGI ist die klassische Methode f r die Zusam menarbeit zwischen Webserver und Anwendungen Es handelt sich nicht um eine bestimmte Programmiersprache sondern lediglich um einen seit 1995 unver ndert g ltigen Kommunikationsstandard Ein CGI Programm liest Formulardaten ber Standardschnittstellen des Betriebssystems als w rden sie ber die Tastatur einge tippt Seine Standardausgabe die normalerweise auf dem Bildschirm landen w rde leitet der Webserver als dynamisch generiertes Dokument an den Browser d
255. vorgestellt die das Bestellformular aus dem vorigen Kapitel auswertet Zum Schluss wird noch ein datenbankbasiertes G stebuch hinzugef gt Verarbeitung der Online Bestellungen Im Praxisteil des vorigen Kapitels wurde unter anderem ein einfaches Flash Formu lar f r Online Bestellungen gezeigt Hier wird ein PHP Skript vorgestellt das die Bestelldaten entgegennimmt Es addiert alle Preise zusammen weist den korrekten Mehrwertsteueranteil aus wobei der Einfachheit halber alle Artikel mit 16 Mehr wertsteuer belegt werden entscheidet ber Versandkosten ab 50 Euro frei und gibt dieses Ergebnis als einfaches HTML Dokument aus Damit dieses Skript akti viert werden kann m ssen Sie den Film beispiele kapitell0 form_ziel fla auf der beiliegenden CD ROM um ein kleines Skript erweitern Weisen Sie dem bisher nur als Dummy verf gbaren Button Abschicken folgendes Skript zu on release getURL order php self GET Das Skript order php muss in demselben Verzeichnis Ihres Webservers gespeichert werden wie die ver ffentlichte SWF Datei Es besitzt folgenden Inhalt den Sie in einem beliebigen Texteditor eingeben k nnen lt php Funktion zum Lesen von Parametern function cgiParam field default Nariable auf Standardwert setzen var default HTTP Methode ermitteln meth _SERVER REQUEST _METHOD if meth GET if isset _GET field amp amp _GET field var GET
256. werden dabei durch ersetzt zahlreiche weitere Sonderzeichen wer den durch ein Prozentzeichen und ihren hexadezimalen Zeichencode dargestellt etwa FC f r oder 21 f r Angenommen ein Benutzer gibt in ein Feld mit der Bezeichnung name den Namen G nther Schmitz und unter alter den Wert 42 ein Das Ganze wird mit Hilfe einer GET Anfrage an bestell send php verschickt Die erste Zeile dieser Anfrage sieht so aus GET bestell send php name G FCnther Schmitz alter 42 HTTP 1 1 Wenn Formulardaten dagegen ber eine POST Anfrage versandt werden dann wer den sie nicht an die URL angeh ngt sondern im Body der Anfrage transportiert Dies ist der Bereich der durch eine Leerzeile von der Anfrage und ihren Headern getrennt wird Der Versand der obigen Daten mit POST sieht etwa so aus POST bestell send php User Agent Mozilla 4 0 compatible MSIE 6 0 Windows NT 5 01 Host www e commerce net Content length 31 Content type application x www form urlencoded name G FCnther Schmitz alter 42 Genau wie eine HTTP Antwort enth lt diese Anfrage nun auch die oben beschrie benen Header Content length und Content type Der Standardtyp application x www form urlencoded entspricht dabei wie Sie an den Daten selbst erkennen k n nen der URL Codierung beim GET Versand Einer der Vorteile von POST ist allerdings dass Sie auch andere Datentypen w hlen k nnen wenn Formulare ein Feld f r den Versand lokaler Dateien enthalten wir
257. x und x wird im Text erl utert 3 x X 3 x 3 Variable um den angegebenen Wert vermindern ActionScript Grundelemente 203 Tabelle 6 5 Modifikationsoperatoren die den Wert von Variablen ver ndern Fortsetzung Langfassung Kurzfassung Erl uterung x xX 1 x 1 Variable um 1 vermindern xX X KR 35 x 3 Variable mit dem angegebenen Wert multiplizieren x xX 3 x 3 Variable durch den angegebenen Wert dividieren F r die Erh hung beziehungsweise Verminderung um 1 stehen die speziellen Ope ratoren beziehungsweise zur Verf gung Sie k nnen sie sowohl vor als auch hinter die gew nschte Variable schreiben bei einer allein stehenden Anweisung macht dies keinen Unterschied a erh ht den Wert von a genauso um 1 wie a Die beiden Formulierungen verhalten sich allerdings unterschiedlich wenn Sie sie innerhalb eines komplexeren Ausdrucks verwenden Das vorangestellte Pr Inkrement erh ht die Variable zuerst um 1 und verwendet dann im Ausdruck den neuen Wert b a a 4 b 4 Ein nachgestelltes Post Inkrement verwendet dagegen den bisherigen Wert im Ausdruck und erh ht die Variable erst danach um 1 var a 3 b a a 4 b 3 F r Pr beziehungsweise Post Dekrement gilt sinngem das Gleiche Neben den hier erw hnten Modifikationsoperatoren gibt es noch weitere n mlich f r s mtliche logischen Operatoren und Bit Operatoren Beispiele amp amp oder
258. xtfeld Instanzname text ist der Textinhalt der zuge wiesen oder ausgelesen werden kann Textinput einzeiliges Textfeld siehe TextArea Window frei schwebendes Fenster mit Titelleisteund siehe Loader Schlie feld Hier nur ein kleines Beispiel f r die Anwendung von Komponenten Im Ausgabe fenster wird die Auswahl aus einer RadioButton Gruppe sowie der Text aus einer ComboBox ausgegeben sobald eine Button Komponente angeklickt wird Ziehen Sie zun chst drei RadioButton Komponenten auf die B hne Klicken Sie alle drei an und weisen Sie ihnen im Komponenten Inspektor folgende Eigenschaften zu groupName Gruppenname bei allen interesse unter data Datenwert bei Aus wahl egitarre agitarre beziehungsweise bass Die Eigenschaft label Beschriftung wird schlie lich entsprechend mit den drei Werten E Gitarren Akustische Gitarren 302 Kapitel 9 Formulare erstellen und B sse versehen Falls eine Beschriftung nicht passt m ssen Sie die Breite der entsprechenden Komponente per Eigenschaftenleiste oder Info Palette ndern F gen Sie ber den RadioButtons die folgende Frage als statischen Text oder Label Komponente ein Welche Instrumente interessieren Sie am meisten Erstellen Sie unter der RadioButton Gruppe die n chste statische Beschriftung Wie haben Sie von unserer Site erfahren ausw hlen oder eintragen Ziehen Sie nun eine ComboBox Komponente auf die B hne Weisen Sie ihr in der Eigen schaftenleiste den Instanzna
259. yp Movieclip mit dem Namen akkorde Ziehen Sie das Symbol griffbrett in dieses neue Symbol hinein und platzieren Sie es mittig auf dem Registrierpunkt Verl ngern Sie die bisher einzige Ebene auf 35 Bil der und benennen Sie sie in griffbrett um Anschlie end k nnen Sie diese Ebene sperren F gen Sie eine neue Ebene namens griffe ein Sie erh lt Schl sselbilder in den Bil dern 1 6 11 16 21 26 und 31 Erstellen Sie eine weitere Ebene mit der Bezeich nung labels Sie erh lt Schl sselbilder auf denselben Bildern Diese werden von links nach rechts mit folgenden Bildmarkierungen versehen aus E A H7 Em Am und Dm Zeichnen Sie nun auf der Ebene griffe angefangen mit dem Frame E jeweils Punkte ein die den Fingerpositionen der Akkorde entsprechen Zus tzlich werden die Akkordbezeichnungen neben dem Griffbrett eingetragen siehe Abbil dung 6 11 Abbildung 6 11 Zeichnen Sie die hier gezeigten Griffe samt Beschriftungen ein F gen Sie nun eine weitere Ebene mit dem Namen sounds ein Sie ben tigt Schl s selbilder an denselben Positionen wie die anderen Ebenen Weisen Sie den einzel nen Bildern die passenden Sounds zu und zwar jeweils mit den Einstellungen Sync Anfang und Endlosschleife Als Letztes wird noch eine Ebene namens actions einge f gt F gen Sie auch auf dieser die blichen Schl sselbilder ein und weisen Sie jedem von ihnen die folg
Download Pdf Manuals
Related Search
Related Contents
CANwatch - EMS Dr. Thomas Wünsche DEH-2120UB DEH-2100UB PS-M330 Philips Blu-ray Disc player BDP5200 Fujitsu SUSE Linux ES x86 Salton WT11LT User's Manual Macom 900B Copyright © All rights reserved.
Failed to retrieve file