Einführung in ActionScript



Ähnliche Dokumente
Java Kurs für Anfänger Einheit 5 Methoden

Übung 1 mit C# 6.0 MATTHIAS RONCORONI

C# im Vergleich zu Java

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck

Java-Schulung Grundlagen

PHP Programmierung. Seminarunterlage. Version 1.02 vom

Vererbung & Schnittstellen in C#

Javakurs zu Informatik I. Henning Heitkötter

Java: Vererbung. Teil 3: super()

Multimedia im Netz Wintersemester 2011/12

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.

Workshop 6. Einführung in die objektorientierte Programmierung. Teil: Java mit BlueJ

Die Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter

Große Übung Praktische Informatik 1

Grundlagen von Python

WPF Steuerelemente Listbox, ComboBox, ListView,

Arrays. PHP JavaScript Kapitel 9

Einführung in die Programmierung

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

Objektorientierte Programmierung. Kapitel 12: Interfaces

Objektorientierte Programmierung in Java

Java Einführung Umsetzung von Beziehungen zwischen Klassen. Kapitel 7

Objektorientierung: Klassen und Objekte

Objektorientierte Programmierung

Modellierung und Programmierung 1

Javakurs 2013 Objektorientierung

Java Einführung Packages

Dynamisches SQL. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München

AJAX Implementierung mit Joomla!

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

3 Objektorientierte Konzepte in Java

Technische Dokumentation SilentStatistikTool

Java Einführung Collections

Typumwandlungen bei Referenztypen

Einführung in die Java- Programmierung

Innere Klassen in Java

Klausurteilnehmer. Wichtige Hinweise. Note: Klausur Informatik Programmierung, Seite 1 von 8 HS OWL, FB 7, Malte Wattenberg.

Modul 122 VBA Scribt.docx

Einführung in Javadoc

Einführung in Eclipse und Java

Objektorientierte Programmierung

Globale Scrum Retrospektive

Es wird das Struts <html:option> Element erläutert und anhand von kleinen Beispielen der Umgang veranschaulicht.

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005

Tutorium Rechnerorganisation

Adobe Flash CS4»3D-Tool«

Applets I. Grundlagen der g Applet-Programmierung

Programmieren in Java

Programmieren I. Strategie zum Entwurf von Klassen. Beispiele. Design von Klassen. Dr. Klaus Höppner. Beispiel: Bibliothek

Erstellung eines Banderole-Ads Stand 06/10

Problemstellung. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 24: Reflection 1. IDE und automatische Tests.

Screening for Illustrator. Benutzerhandbuch

3. Auflage. O Reillys Taschenbibliothek. C# 5.0 kurz & gut. Joseph Albahari & Ben Albahari O REILLY. Aktualisierung von Lars Schulten

Algorithmen mit Python

Gebundene Typparameter

Gliederung Grundlagen Schlüsselworte try-catch Fehlerobjekte Fehlerklassen Schlüsselwort finally Schlüsselwort throws selbst erstellte Exceptions

Programmieren Tutorium

Testen mit JUnit. Motivation

Einstieg in die Informatik mit Java

Software-Engineering und Optimierungsanwendungen in der Thermodynamik

Andy Hunt. Programmieren lernen. mit Minecraft-Plugins. dpunkt.verlag

Übersicht. Schleifen. Schleifeninvarianten. Referenztypen, Wrapperklassen und API. 9. November 2009 CoMa I WS 08/09 1/15

Multimedia Engineering II - Übung 2

Pakete dienen dazu, die Software eines Projektes in größere inhaltlich zusammengehörige Bereiche mit eigenem Namen einzuteilen (siehe Java API).

Das Typsystem von Scala. L. Piepmeyer: Funktionale Programmierung - Das Typsystem von Scala

Java Einführung Operatoren Kapitel 2 und 3

Software Engineering Klassendiagramme Einführung

Prof. Dr. Uwe Schmidt. 21. August Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252)

Projekt 04: Einstieg in Actionscript: Bestimmung von π mit Monte-Carlo-Methode

Klausur in Programmieren

5. Abstrakte Klassen. Beispiel (3) Abstrakte Klasse. Beispiel (2) Angenommen, wir wollen die folgende Klassenhierarchie implementieren:

Internet Explorer Version 6

Klausur zur Einführung in die objektorientierte Programmierung mit Java

Programmieren in Java

SS Björn Berezowski B.Sc. Marco Münch B.Sc. Michael Roth B.Sc. Repetitorium PG 1. Übungsblatt. 1 Übung - Probeklausur SS 2010 Typ Prof.

XML-Namensräume. Marc Monecke

2. Programmierung in C

2. Semester, 2. Prüfung, Lösung

5. Tutorium zu Programmieren

Prinzipien Objektorientierter Programmierung

Programmieren I. Prinzipieller Ablauf. Eigenschaften von JAVA. Source-Code Javac Bytecode. Java Virtual Machine (Java, Browser, Appletviewer)

Alexander Niemann. Das Einsteigerseminar Objektorientierte Programmierung in Java. bhv

Computeranwendung und Programmierung (CuP)

Adobe Encore Einfaches Erstellen einer DVD

Lua. June 9, Marcus Brenscheidt Marcin Golkowski ( Dynamische Programmiersprachen Lua )

4D Server v12 64-bit Version BETA VERSION

WEBAPPLIKATIONEN MIT PHP. Wo gibt es Hilfe? Wie fang ich an?

Programmierkurs Java

Vorkurs C++ Programmierung

Client-Server-Beziehungen

Informatik 2 Labor 2 Programmieren in MATLAB Georg Richter

5. Abstrakte Klassen

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 22

Übung: Verwendung von Java-Threads

Objektorientiertes JavaScript

Transkript:

Fachbereich Mathematik und Informatik Softwareprojekt: Spieleprogrammierung Einführung in ActionScript Do, Hoang Viet(do@mi.fu-berlin.de) Freie Universität Berlin, SoSe 2012

Agenda Allgemeine Einführung Eigenschaften von ActionScript Flash Anwendung erstellen Besonderheiten von ActionScript gegenüber Java Tutorial: Einführung in die Spieleentwicklung http://gingermagicgames.com/?p=87 Bunte Bilder, Tolle SFX, Hexerei ähnliche Animation UND VIELES MEHR! Literatur: Programming in Adobe ActionScript 3.0 online verfügbar http://help.adobe.com/en_us/actionscript/3.0_programmingas3/ Deutsche Version liegt auch vor: http://help.adobe.com/de_de/actionscript/3.0_programmingas3/ 2

Eigenschaften von ActionScript Auf Basis von Javascript (ECMA 262) Case Sensitive A ist nicht dasselbe wie a Objekt orientierte Programmiersprache Klassen, Methoden, Eigentschaften Dynamische Typisierung Pseudostatische Typisierung möglich Semikolon ist optional Bei uns bitte mit als Coorperate Style 3

Eine Flash Anwendung erstellen ActionScript Reine ActionScript ActionScript und MXML Über MXML wird die UI definiert Mischcode aus MXML und Actionsckript in einer Datei ActionScript und Flash Innerhalb von Flash werden die Symbole ( MovieClips ) erstellt Symbole sind mit Klassen in ActionScript gekoppelt 4

Demo: HelloWorld 5

Typen Kovention: lowercamelcase Einfache Datentypen (engl. simple datatype) string, uint (32 bit), int (32 bit), Number (64 bit), Boolean Achtung: Im Handbuch steht In ActionScript 3.0, all arguments are passed by reference, because all values are stored as objects Das ist nicht wahr! Operatoren Strenge Un-/Gleichheit: a === b oder a!== b Wert und Typ Keine implizite Typkonvertierung Volle Liste: Programming Adobe ActionScript 3.0, Page 69 6

Typen Eigenschaften (engl. Properties) Syntax: [modifier]var <ident>[:type] [= <value>]; Auch die Klassen haben Modifier: public, internal (default), dynamic, final Vererbung, Interfaces, Überschreiben von Methoden Java-like (extends, override, final) Pseudo Enumeration durch final Klassen 7

Methoden 1 Methoden (engl. Methods) Syntax: [modifier]function <ident>([p1:type[,p2:type[ ]]]) [: type] { /* */ } Beispiel: function eventresponse(eventobject:eventtype) { /* */} Funktionsparameter Standardparameter möglich Variable Parameterzahl möglich Array arguments im Funktionsrumpf nutzen Oder über vor dem letzten Parameter (ab ActionScript 3) Getter und Setter Getter-Syntax: [accessor]function get <name>():<type> {} Setter-Syntax: [accessor]function set <name>(<p>:<type>):void {} Funktionssignatur ist fest. 8

Methoden 2 Überladen von Methoden ist nicht möglich Gebundene Methoden Funktion, die eine Funktion zurückliefert Weitere Punkte: Instanzmethoden Statische Methoden Konstruktoren 9

Array Indizierte oder/und Assoziative Untypisiert Strikte Typisierung (AS3): Vector.<Type> (Type ersetzen) Als Key ist alles möglich: Number, Strings, Objekte Mischung erlaubt Indizierung von 0; Keine kontinuierliche Zählung nötig Beispiel: A[0] = 1; A[10] = 10; Demo: e002_arrays.as Ablaufsteuerungen for in Iteriert den Key for each in Iteriert den Value Demo: e003_iterations.as 10

Mehrdimensionale Arrays var mm:array = new Array(); mm[0] = new Array(); mm[0][0] = 100; mm[1][0] = 12; // Error trace(mm[0][0]); 11

Mehrdimensionale Arrays var mastertasklist:object = new Object(); mastertasklist["monday"] = ["wash dishes", "trash"]; mastertasklist["tuesday"] = ["wash dishes", "pay bills"]; mastertasklist["wednesday"]= ["wash dishes", "dentist"]; mastertasklist["thursday"] = ["wash dishes"]; mastertasklist["friday"] = ["wash dishes", "clean house"]; mastertasklist["saturday"] = ["wash dishes", "wash car"]; mastertasklist["sunday"] = ["mow lawn", "fix chair"]; trace(mastertasklist.wednesday[1]); trace(mastertasklist.sunday[0]); // output: dentist // output: mow lawn Quelle: Beispiel von Adobe Handbuch 12

Anmerkungen Kommentare Zeilenkommentare, Blockkommentare ASDoc wie JavaDoc http://help.adobe.com/en_us/flex/using/wsd0ded3821e0d52fe1e63e3d11c2f44bb7 b-7fe7.html Fehlerbehandlung durch Exception (try catch finally) und Events Programming in Adobe ActionScript 3.0, Seite 195 ff. Leere Catch Block ist nicht erlaubt Mutterklasse: Error Package statt Namespaces! eigene Zugriffsmodifier Nicht verwechseln mit Namespace aus C# Programming Adobe ActionScript 3.0, Seite 42 ff. 13

Tutorial 14

Grundlagen der Spieleprogrammierung Gameloop Eine unendliche Schleife, die kontinuierlich eine Update- und Draw-Operation ausführt. Frames Eine Iteration der Gameloop Maximale Framerate ist in Flash einstellbar! Assets Audio-visuellen Elemente eines Spiels ContentLoader Die Komponente, die für das Laden der Assets zuständig ist. 15

Weitere Sprachelemente Funktionspointer Es existiert der Typ Function Hinweis: <ident>.length Klassenpointer Es existert der Typ Class Reflection Anweisungen an den Compiler Beispiel: [embed(source= img/player.png )] private var Player : Class; 16

Hinweise zum Tutorial Link auf dem Homepage Namespace s (spark) statt mx (halo/mx) nutzen <s:group> statt <mx:canvas> Abgabe: Fertige Spiel vorzeigen Wer fertig ist kann gehen 17 Uhr ist Schluss. 17