Know-how für Kreative

Inhaltsverzeichnis
1 Erste Schritte
2 Versionen
3 Einführung in die Programmierung
4 Die Entwicklungsumgebung
5 Regeln
6 Anweisungen und Aktionen
7 Werte und Datentypen
8 Ausdrücke und Operatoren
9 Funktionen
10 Kontrollstrukturen
11 Dokumenten-Objektmodell und Gültigkeitsbereich (Scope)
12 Ereignisse
13 Objekterstellung
14 Vererbung
15 Movieclips
16 ActionScript 2.0
17 Komponenten
18 Codedesign und Konzeption
19 Flashdetection
20 Aussergewoehnliche Benutzerfuehrung
21 D mit Flash
22 Macromedia Central
23 HTML
24 JavaScript, ActiveX und Java
25 Flash undokumentiert
26 Vergangenheit, Gegenwart und Zukunft
27 Kurzreferenz
28 Buchtipps
29 Links
30 Die CD-ROM zum Buch
Index
Download: - ZIP, ca. 9,8 MB
Buch bestellen
Ihre Meinung?
<< zurück | Galileo Design / <openbook> / ActionScript | vor >>
ActionScript 1 und 2 von Sascha Wolter (http://www.saschawolter.de/) Objektorientierung und Codedesign mit Flash MX 2004
ActionScript 1 und 2 672 S., mit CD, Referenzkarte, 44,90 Euro Galileo Design ISBN 3-89842-221-6 |
| Kapitel 3 Einführung in die Programmierung
|  | 3.1 Vom Problem zum Programm
|  |  | 3.1.1 Probleme mit den Problemen
|  |  | 3.1.2 Algorithmen und Programme
|  |  | 3.1.3 Daten
|  |  | 3.1.4 Datenstrukturen
|  | 3.2 Imperative Programmierung
|  |  | 3.2.1 Anweisungen
|  |  | 3.2.2 Funktionen
|  |  | 3.2.3 Kontrollstrukturen
|  | 3.3 Ereignisorientierte Programmierung
|  | 3.4 Objektorientierte Programmierung
|  |  | 3.4.1 Programmiermodelle
|  |  | 3.4.2 Metaphern und Konzepte
|  |  | 3.4.3 Leistungsfähigkeit
## 3.4 Objektorientierte Programmierung ##### Denke nicht in Algorithmen, sondern in Objekten! Steigende Komplexität, schlechte Planung, mangelnde Spezifikation, unzureichende Projekteinschätzung, ungenügende Kalkulation, missverstandene Aufgabenstellung und daraus resultierende Terminüberschreitung, Sprengung des Budgets, Nichterfüllung der Anforderungen und schlechte Performance bis hin zur Unbrauchbarkeit der Software – nur einige leider immer wieder auftretende Schwierigkeiten bei der Erstellung von Programmen, die in den Siebzigerjahren den Begriff Softwarekrise geprägt haben. ##### Siehe Teil III, »Objektorientierung« Um diese Krise in den Griff zu bekommen, sind große Anstrengungen unternommen und zahlreiche Lösungsansätze entwickelt worden, von denen die objektorientierte Programmierung (OOP) die populärste ist. Nicht zuletzt aus diesem Grund ist ihr in diesem Buch sehr viel Raum gewidmet! Aber auch die Objektorientierung ist kein Garant für die termingerechte und erfolgreiche Durchführung eines Projektes. ### 3.4.1 Programmiermodelle ActionScipt basiert wie zahlreiche andere Sprachen, darunter z.B. JavaScript, Java und C++, auf dem objektorientierten Modell. Die Programmiersprachen eines Modells ähneln sich in der Regel sehr, Sprachen unterschiedlicher Modelle hingegen verhalten sich auch sehr unterschiedlich. Aus diesem Grund fällt der Wechsel zwischen Programmiersprachen in der Regel nicht allzu schwer, wenn man einmal die Konzepte des zugrunde liegenden Modells verinnerlicht hat – seien Sie also nicht allzu frustriert, wenn ein Programmierer bereits nach kurzer Zeit ActionScript beherrscht. Dies hat nichts mit seinen Flash-Fähigkeiten zu tun … Aber egal, für welches Modell Sie sich letztendlich entscheiden. Grundsätzlich gilt: Alle Programmiersprachen sind gleich mächtig, da der Computer letztendlich jede Anweisung eines Programms in eine binäre Maschinensprache übersetzt, also in Nullen und Einsen. Dabei kann eine einzige Anweisung in einer höheren Programmiersprache für Tausende von Befehlen in Maschinensprache stehen.

Tabelle 3.1 Höhere Programmiersprachen

| Beispiel | Jahr
Imperative Programmierung | Basic | 1964
| Pascal | 1970
| C | 1972
Funktionale Programmierung | Lisp | 1969
Logische Programmierung | Prolog | 1972
Objektorientierte Programmierung (OOP) | Smalltalk | 1972
| C++ | 1986
| Java | 1990
Die höheren Sprachen – zu denen auch ActionScript zählt – bieten darüber hinaus den Vorteil, dass sie deutlich einfacher zu erlernen und zu beherrschen sind als niedrige Sprachen wie die Maschinensprache oder Assembler. Es ist ein geringeres Abstraktionsvermögen seitens des Entwicklers notwendig, da sich diese Art der Softwareentwicklung stärker an der Lösung der eigentlichen Aufgabe als an der Maschine orientiert. ### 3.4.2 Metaphern und Konzepte ##### siehe Kapitel 13 Die Objektorientierung bietet als zusätzliche Pluspunkte mit den Objekten eine aus der realen Welt bekannte Metapher, die es ermöglicht, die echte Welt in den Computer zu übertragen (Abstraktion). Diese Metapher erlaubt es darüber hinaus, Programme einfach in modulare und gekapselte Einheiten zu unterteilen, die sich durch Wiederverwendbarkeit auszeichnen (Blackbox-Prinzip). Die Objektorientierung geht aber noch einen Schritt weiter und verwendet die Prinzipien der Evolution, indem sie es ermöglicht, ganze Klassen von Objekten zu erstellen sowie Fähigkeiten und Eigenschaften zu vererben. Auf diese Art und Weise versuchen Programmierer, die Probleme der Softwarekrise in den Griff zu bekommen. Für den weiter oben erwähnten Pfannkuchen bedeutet das, dass die Datenstruktur als Klasse abgelegt wird und über die Eigenschaften hinaus noch Fähigkeiten erhält. Auf diese Art und Weise funktioniert die Klasse aller Pfannkuchen – egal wie viele Vorkommen des Pfannkuchens gebraucht werden – beinahe in allen Umgebungen, ohne weitere Kenntnisse ihrer inneren Struktur:
    // Definiere Klasse mit ActionScript 1 (Prototyp)
    function Pfannkuchen (zutaten) {
       // Erzeuge den Pfannkuchen
    }
    // Definiere Fähigkeiten
    Pfannkuchen.prototyp.verspeise = function () {
       // Verspeise den Pfannkuchen
    }
    // Erzeuge Vorkommen der Klasse
    meinPfannkuchen = new Pfannkuchen(zutaten);
    meinPfannkuchen.verspeise();
    neuerPfannkuchen = new Pfannkuchen(zutaten);
Übrigens: In einer eigenständigen ActionScript 2-Datei namens Pfannkuchen.as sähe dieses Beispiel ungefähr so aus:
    // Definiere Klasse mit ActionScript 2 (class)
    class Pfannkuchen {
       function Pfannkuchen (zutaten) {
          // Erzeuge den Pfannkuchen
       }
       // Definiere Fähigkeiten
       function verspeise () {
          // Verspeise den Pfannkuchen
       }
    }
Der weitere Programmcode direkt in Flash ist mit dem von ActionScript 1 weitestgehend identisch:
    // Erzeuge Vorkommen der Klasse
    meinPfannkuchen = new Pfannkuchen(zutaten);
    meinPfannkuchen.verspeise();
    neuerPfannkuchen = new Pfannkuchen(zutaten);
##### Flash für Programmierer Aus der Sicht eines »klassischen« Programmierers von Hochsprachen wie Java und C++ mutet Flash mit all seinen Design-Werkzeugen und der Zeitleiste nicht wie eine ernsthafte Entwicklungsumgebung an. Und in der Tat gehört die Entwicklungsumgebung Flash eher zu der Klasse der Autorensysteme, deren ursprüngliches Ziel die Anwendungsentwicklung weitestgehend ohne Programmierung ist. Obwohl Flash ein Autorensystem inklusive vieler Zeichenwerkzeuge geblieben ist, sind zahlreiche Hilfsmittel hinzugekommen, die zusätzlich die Programmierung anspruchsvoller und umfangreicher Anwendungen ermöglichen und Flash so in die Riege der »richtigen« Entwicklungsumgebungen katapultieren und somit für die »klassischen« Programmierer interessant machen. Zusätzlich bereichern die Konzepte von Flash richtig eingesetzt die Programmierung. Die bei regieorientierten Autorensystemen (Filmmetapher) verwendete Zeitleiste ist ein gutes Beispiel. Die Zeitleiste mit ihren Bildern kann als eine Liste mit aneinander gereihten Zuständen gesehen werden. Eine Animation ist somit nichts anderes als die kontinuierliche Darstellung von hintereinander liegenden Zuständen. Dank der Programmiersprache ist ein willkürlicher Wechsel zwischen den Zuständen jederzeit möglich, wodurch die Bilder in der Zeitleiste eine gute Alternative zu Variablen und Eigenschaften sind, um komplexe – in erster Linie grafische – Datenstrukturen zu beinhalten. ##### Einführung in Flash Eine ausführliche Einführung in die Grundlagen und die Funktionsweise von Flash finden Sie in unserem Buch »Flash MX 2004 – Grundlagen und Praxislösungen« (ISBN 3-89842-468-5). ### 3.4.3 Leistungsfähigkeit Ist Objektorientierung leistungsfähiger als andere Herangehensweisen? Diese Frage lässt sich mit einem klaren Nein beantworten. Zwar wird der Entwicklungsprozess durch OOP verbessert, aber es kann auf diese Art und Weise nichts programmiert werden, was nicht durch andere Programmiermodelle lösbar wäre. Alle Programmiersprachen leisten das Gleiche, und das wiederum ist eine der wichtigsten Erkenntnisse der Informatik. Jede Programmiersprache wird letztendlich in Maschinensprache übersetzt und hat somit die gleichen Möglichkeiten (mehr zu diesem Thema finden Sie in der Informatik unter den Begriffen »Turingmaschine« und »Churchs These«). OOP zählt oft zu den effizientesten Programmiermöglichkeiten. Aber nicht in allen Fällen: Wenn es sich um künstliche Intelligenz handelt, sind z.B. logische Programmiersprachen wie Prolog sehr beliebt (bei Prolog handelt es sich um eine Programmiersprache, die auf der Angabe von logischen Regeln aufbaut). Übrigens sind aus der Sicht der Informatik die Programmiermöglichkeiten von Flash bereits seit Flash 2 identisch. Sie haben natürlich Recht, dass Flash MX 2004 viel mehr kann als Flash 2. Aber trotzdem lösen alle Versionen zumindest theoretisch die gleiche Menge mathematischer Probleme. Eine aktuelle Version von Flash benötigt in vielen Fällen aber nur einen Bruchteil der früher notwendigen Entwicklungszeit.
<< zurück | <top> | vor >>
Zum Katalog
ActionScript 1 und 2 bestellen
Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen? Ihre Meinung
Buchtipps
| Einstieg in ActionScript
| Einstieg in Flash 8
| Flash 8 und PHP
| Flash 8-Tutorials
| Dreamweaver 8
| Webseiten programmieren und gestalten
Shopping
Versandkostenfrei bestellen in Deutschland und Österreich Info

Copyright © Galileo Press GmbH 2005
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: 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.

[Galileo Design]
Galileo Press GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de