Medienproduktion Sommersemester 2010 - fue-wiki.tubit.tu...

34
Medienproduktion Sommersemester 2010 Dipl.-Inform. Alexander Schulze Prof. Dr. Ing. Klaus Rebensburg

Transcript of Medienproduktion Sommersemester 2010 - fue-wiki.tubit.tu...

Page 1: Medienproduktion Sommersemester 2010 - fue-wiki.tubit.tu ...fue-wiki.tubit.tu-berlin.de/lib/exe/fetch.php/lehrveranstaltungen:... · Microphone-Klasse • import flash.media.Microphone;

MedienproduktionSommersemester 2010

Dipl.-Inform. Alexander Schulze Prof. Dr. Ing. Klaus Rebensburg

Page 2: Medienproduktion Sommersemester 2010 - fue-wiki.tubit.tu ...fue-wiki.tubit.tu-berlin.de/lib/exe/fetch.php/lehrveranstaltungen:... · Microphone-Klasse • import flash.media.Microphone;

Ablauf Heute

• Prüfungstermin 02.09.2010, 10 Uhr in 03.06.H01

• Zwischenpräsentationen

• Fortsetzung Programmierung mit Flash

• Fortsetzung Nutzung von Sound mit AS3Mikrofon nutzen

• Überblick über weitere Features

• Text

• URLLoader und Loader

• Bitmaps verwenden

• Filter

• Pixel Bender

Page 3: Medienproduktion Sommersemester 2010 - fue-wiki.tubit.tu ...fue-wiki.tubit.tu-berlin.de/lib/exe/fetch.php/lehrveranstaltungen:... · Microphone-Klasse • import flash.media.Microphone;

Zwischenpräsentationen

Page 4: Medienproduktion Sommersemester 2010 - fue-wiki.tubit.tu ...fue-wiki.tubit.tu-berlin.de/lib/exe/fetch.php/lehrveranstaltungen:... · Microphone-Klasse • import flash.media.Microphone;

Flash - Fortsetzung - Programmierung mit

ActionScript 3

Page 5: Medienproduktion Sommersemester 2010 - fue-wiki.tubit.tu ...fue-wiki.tubit.tu-berlin.de/lib/exe/fetch.php/lehrveranstaltungen:... · Microphone-Klasse • import flash.media.Microphone;

ActionScriptSound (Fortsetzung)

Page 6: Medienproduktion Sommersemester 2010 - fue-wiki.tubit.tu ...fue-wiki.tubit.tu-berlin.de/lib/exe/fetch.php/lehrveranstaltungen:... · Microphone-Klasse • import flash.media.Microphone;

Grundlagen Mikrofon nutzen

• neuere Flash-Versionen: Speex-Codec

• Sound-Aufnahme nur bei Aktivität: zum einsparen von Ressourcen (CPU-Last, Bandbreite)

• nach einer Zeit unter einem bestimmten Level wird „stumm geschaltet“ und Event ausgelöst

• „Stummschaltung“ kann deaktiviert werden

medienproduktion/interactive-media/flash/actionscript/sound/grundlagen

Page 7: Medienproduktion Sommersemester 2010 - fue-wiki.tubit.tu ...fue-wiki.tubit.tu-berlin.de/lib/exe/fetch.php/lehrveranstaltungen:... · Microphone-Klasse • import flash.media.Microphone;

Mikrofon-Aktivität: Stummschaltung

medienproduktion/interactive-media/flash/actionscript/sound/grundlagen

0

100

silenceLevelactivityLevel activityLevel

activityLevel < silenceLevelfür mehr ms als silenceTimeout

Mikrofon wird stummgeschaltet

ActivityEvent.ACTIVITY

Page 8: Medienproduktion Sommersemester 2010 - fue-wiki.tubit.tu ...fue-wiki.tubit.tu-berlin.de/lib/exe/fetch.php/lehrveranstaltungen:... · Microphone-Klasse • import flash.media.Microphone;

Microphone-Klasse

• import flash.media.Microphone;

• activityLevel-Eigenschaft⇒Lautstärke des erfassten Sounds (0-100)

• silenceLevel-Eigenschaft⇒ Schwellwert Stummschaltung (0,-100, default 10)

• silenceTimeout-Eigenschaft⇒ Zeit in ms, ab der „stumm geschaltet wird“

(default 2000)

medienproduktion/interactive-media/flash/actionscript/sound/grundlagen

Page 9: Medienproduktion Sommersemester 2010 - fue-wiki.tubit.tu ...fue-wiki.tubit.tu-berlin.de/lib/exe/fetch.php/lehrveranstaltungen:... · Microphone-Klasse • import flash.media.Microphone;

Microphone-Klasse: Methoden

• Methoden

• setSilenceLevel(level, timeout)

• Stummschaltung konfigurieren

• setLoopBack( true|false )

• aufgenommenes Audio direkt Wiedergeben?

• setUseEchoSuppression( true|false)

• Echounterdrückung (de-)aktivieren

medienproduktion/interactive-media/flash/actionscript/sound/grundlagen

Page 10: Medienproduktion Sommersemester 2010 - fue-wiki.tubit.tu ...fue-wiki.tubit.tu-berlin.de/lib/exe/fetch.php/lehrveranstaltungen:... · Microphone-Klasse • import flash.media.Microphone;

ActionScriptText

Page 11: Medienproduktion Sommersemester 2010 - fue-wiki.tubit.tu ...fue-wiki.tubit.tu-berlin.de/lib/exe/fetch.php/lehrveranstaltungen:... · Microphone-Klasse • import flash.media.Microphone;

Grundlagen Text nutzen

• TextField-Klasse

• zur Anzeige und zur Eingabe von Text

• Basis verschiedener Flash-„Komponenten“ (TextArea, TextInput,...)

• Formatierung über CSS oder Klasse TextFormat

• Flash Text-Engine-Klassen

• fortgeschrittene lowlevel Funktionen für Textdarstellung

• Klassen: TextBlock, TextElement, FonDescription, ElementFormat,...

• auch nicht lateinische Zeichner über Unicode

• andere Textrichtungen möglich (Arabisch, Chinesisch,..)

• Kerning, Tracking, BaselineShift,...

• u.v.m.

medienproduktion/interactive-media/flash/actionscript/text/grundlagen

Page 12: Medienproduktion Sommersemester 2010 - fue-wiki.tubit.tu ...fue-wiki.tubit.tu-berlin.de/lib/exe/fetch.php/lehrveranstaltungen:... · Microphone-Klasse • import flash.media.Microphone;

Textelemente erzeugen

• in ActionScript

• z.B.:var text:TextField = new TextField();text.text = "Hallo Welt!";addChild(text);

• in Flash-IDE

medienproduktion/interactive-media/flash/actionscript/text/grundlagen

Page 13: Medienproduktion Sommersemester 2010 - fue-wiki.tubit.tu ...fue-wiki.tubit.tu-berlin.de/lib/exe/fetch.php/lehrveranstaltungen:... · Microphone-Klasse • import flash.media.Microphone;

Text in der Flash-IDE

• drei Optionen

• Dynamischer Text

• zur Laufzeit änderbar (mit AS)

• kein Editieren durch Benutzer

• Statischer Text

• für statische, „unveränderliche“ Beschriftungen

• für optimal kleinen BytecodeText bleibt Text, eingebettete Schriften möglich, nur genutzte Zeichen möglich

• Eingabetext

• zur Laufzeit durch Benutzer editierbar

• ideal für Formulare o.Ä.

medienproduktion/interactive-media/flash/actionscript/text/grundlagen

Page 14: Medienproduktion Sommersemester 2010 - fue-wiki.tubit.tu ...fue-wiki.tubit.tu-berlin.de/lib/exe/fetch.php/lehrveranstaltungen:... · Microphone-Klasse • import flash.media.Microphone;

Code-Beispiel: Textformatierung AS

medienproduktion/interactive-media/flash/actionscript/text/grundlagen

Page 15: Medienproduktion Sommersemester 2010 - fue-wiki.tubit.tu ...fue-wiki.tubit.tu-berlin.de/lib/exe/fetch.php/lehrveranstaltungen:... · Microphone-Klasse • import flash.media.Microphone;

ActionScriptLoader & URLLoader

Page 16: Medienproduktion Sommersemester 2010 - fue-wiki.tubit.tu ...fue-wiki.tubit.tu-berlin.de/lib/exe/fetch.php/lehrveranstaltungen:... · Microphone-Klasse • import flash.media.Microphone;

Loader

• URLLoader-Klasse

• um externe Daten als Text oder binär zu laden

• für Textdateien, XML, u.v.m.

• Events informieren über Ladestatus

• Loader-Klasse

• um SWF oder Bilddateien zu laden und anzuzeigen(GIF, JPEG, PNG, SWF)

• Loader ist ein Anzeigeobjekt ⇒ kann direkt zur Anzeigeliste zugefügt werden

⇒ addChild( loader );

• über LoaderInfo-Events können Beginn, Fortschritt und Ende des Ladevorgangs verfolgt werden

medienproduktion/interactive-media/flash/actionscript/loader/grundlagen

Page 17: Medienproduktion Sommersemester 2010 - fue-wiki.tubit.tu ...fue-wiki.tubit.tu-berlin.de/lib/exe/fetch.php/lehrveranstaltungen:... · Microphone-Klasse • import flash.media.Microphone;

ActionScriptBitmaps verwenden

Page 18: Medienproduktion Sommersemester 2010 - fue-wiki.tubit.tu ...fue-wiki.tubit.tu-berlin.de/lib/exe/fetch.php/lehrveranstaltungen:... · Microphone-Klasse • import flash.media.Microphone;

Grundlagen Bitmaps nutzen

• Unterstützung für BMP, GIF, JPG, PNG und TIFF

• direkte Unterstützung für Transparenz in GIF / PNG

• unabhängig davon: BitMap-Klasse bietet 8-Bit Alphakanal

• wesentliche Klassen: BitMap und BitMapData

• BitMap-Klasse: Anzeige-Objekt, kann DisplayList zugefügt werden

• BitMapData-Klasse enthält Pixeldaten

medienproduktion/interactive-media/flash/actionscript/bitmaps/grundlagen

Page 19: Medienproduktion Sommersemester 2010 - fue-wiki.tubit.tu ...fue-wiki.tubit.tu-berlin.de/lib/exe/fetch.php/lehrveranstaltungen:... · Microphone-Klasse • import flash.media.Microphone;

Bitmap erstellen & anzeigen: Code-Snippet

medienproduktion/interactive-media/flash/actionscript/bitmaps/grundlagen

Code:

Ergebnis:

FüllfarbeTransparenz?Pixelauflösung

Page 20: Medienproduktion Sommersemester 2010 - fue-wiki.tubit.tu ...fue-wiki.tubit.tu-berlin.de/lib/exe/fetch.php/lehrveranstaltungen:... · Microphone-Klasse • import flash.media.Microphone;

Laden externer Bilder

• Loader()-Klasse realisiert in Flash einladen externer Daten

• Schritte (pseudo-Code)

• Loader-Objekt erzeugen

• URLRequest-Objekt für Bilddatei erzeugen (Pfad | URL)

• Loader.load( URLRequest(„dateiname“)

• addChild( Loader )

medienproduktion/interactive-media/flash/actionscript/bitmaps/grundlagen

Page 21: Medienproduktion Sommersemester 2010 - fue-wiki.tubit.tu ...fue-wiki.tubit.tu-berlin.de/lib/exe/fetch.php/lehrveranstaltungen:... · Microphone-Klasse • import flash.media.Microphone;

Laden externer Bilder

medienproduktion/interactive-media/flash/actionscript/bitmaps/grundlagen

Page 22: Medienproduktion Sommersemester 2010 - fue-wiki.tubit.tu ...fue-wiki.tubit.tu-berlin.de/lib/exe/fetch.php/lehrveranstaltungen:... · Microphone-Klasse • import flash.media.Microphone;

ActionScriptFilter

Page 23: Medienproduktion Sommersemester 2010 - fue-wiki.tubit.tu ...fue-wiki.tubit.tu-berlin.de/lib/exe/fetch.php/lehrveranstaltungen:... · Microphone-Klasse • import flash.media.Microphone;

Filter

• Transformations-Funktionen ähnlich den Filtern in Photoshop

• Original-Pixel ⇒ Filterfunktion ⇒ geänderte Pixel

• Anwendung auf Bitmaps und Vektoren möglich

medienproduktion/interactive-media/flash/actionscript/filter/grundlagen

Quelle: http://www.republicofcode.com/tutorials/flash/as3filters/

Page 24: Medienproduktion Sommersemester 2010 - fue-wiki.tubit.tu ...fue-wiki.tubit.tu-berlin.de/lib/exe/fetch.php/lehrveranstaltungen:... · Microphone-Klasse • import flash.media.Microphone;

Filter nutzen

• Schritte

• ein oder mehrere Filter-Objekte erzeugen

• FilterArry der filters-Eigenschaft des Anzeige-Objekts zuweisen

• Filter-Objekt erzeugen

medienproduktion/interactive-media/flash/actionscript/filter/grundlagen

Page 25: Medienproduktion Sommersemester 2010 - fue-wiki.tubit.tu ...fue-wiki.tubit.tu-berlin.de/lib/exe/fetch.php/lehrveranstaltungen:... · Microphone-Klasse • import flash.media.Microphone;

Filter: Code-Beispiel

medienproduktion/interactive-media/flash/actionscript/filter/grundlagen

Page 26: Medienproduktion Sommersemester 2010 - fue-wiki.tubit.tu ...fue-wiki.tubit.tu-berlin.de/lib/exe/fetch.php/lehrveranstaltungen:... · Microphone-Klasse • import flash.media.Microphone;

ÜbungFilter - „interactive blur“

Page 27: Medienproduktion Sommersemester 2010 - fue-wiki.tubit.tu ...fue-wiki.tubit.tu-berlin.de/lib/exe/fetch.php/lehrveranstaltungen:... · Microphone-Klasse • import flash.media.Microphone;

Übung - Ziele und Arbeitsschritte

• Ziele

• Filter am Beispiel anwenden lernen

• Text: zunehmende Unschärfe bei Rollover, Schärfe bei Rollout

• Arbeitsschritte

• Flash-Datei mit Textfeld anlegen

• mit Dokument-Klasse verknüpfen

• Weichzeichner-Filter anlegen

• Events / Event-Handler für Textfeld ( MOUSE_OVER, MOUSE_OUT )

• in Event-Handler Event-Typ merken

• Timer-Event schärft/zeichnet weich abhängig von Event-Typ

medienproduktion/interactive-media/flash/actionscript/filter/übung01

Page 28: Medienproduktion Sommersemester 2010 - fue-wiki.tubit.tu ...fue-wiki.tubit.tu-berlin.de/lib/exe/fetch.php/lehrveranstaltungen:... · Microphone-Klasse • import flash.media.Microphone;

Übung: Code-Auszug

medienproduktion/interactive-media/flash/actionscript/filter/grundlagen

Page 29: Medienproduktion Sommersemester 2010 - fue-wiki.tubit.tu ...fue-wiki.tubit.tu-berlin.de/lib/exe/fetch.php/lehrveranstaltungen:... · Microphone-Klasse • import flash.media.Microphone;

los geht‘s....Filter - „interactive blur“

Page 30: Medienproduktion Sommersemester 2010 - fue-wiki.tubit.tu ...fue-wiki.tubit.tu-berlin.de/lib/exe/fetch.php/lehrveranstaltungen:... · Microphone-Klasse • import flash.media.Microphone;

ActionScriptPixel-Bender-Shader

Page 31: Medienproduktion Sommersemester 2010 - fue-wiki.tubit.tu ...fue-wiki.tubit.tu-berlin.de/lib/exe/fetch.php/lehrveranstaltungen:... · Microphone-Klasse • import flash.media.Microphone;

Grundlagen Pixel-Bender

• Plugin-Architektur zur Erstellung / Nutzung von Filtern

• Software-übergreifend: Photoshop, After Effects und Flash

• Hardware-Beschleunigung über MultiCore und GPU-Support

• hardware-unabhängige Kernel-Sprache für Bildmanipulationen

• XML-basierte Graph-Sprache zur Kombination von Operationen zu komplexen Filtern

medienproduktion/interactive-media/flash/actionscript/pixel-bender/grundlagen

Page 32: Medienproduktion Sommersemester 2010 - fue-wiki.tubit.tu ...fue-wiki.tubit.tu-berlin.de/lib/exe/fetch.php/lehrveranstaltungen:... · Microphone-Klasse • import flash.media.Microphone;

Pixel-Bender-Filter entwickeln

• Pixel-Bender Toolkit erlaubt außerhalb Flash Entwicklung von Pixel-Bender Filtern

• Pixel Bender Utility kompiliert in Bytecode (PBJ)

• Flash-Player kann PBJ ausführen (an V.10)

• Pixel Bender Exchange zum Austausch von Pixel Bender Filternhttp://www.adobe.com/cfusion/exchange/index.cfm?event=productHome&exc=26

medienproduktion/interactive-media/flash/actionscript/pixel-bender/grundlagen

Page 33: Medienproduktion Sommersemester 2010 - fue-wiki.tubit.tu ...fue-wiki.tubit.tu-berlin.de/lib/exe/fetch.php/lehrveranstaltungen:... · Microphone-Klasse • import flash.media.Microphone;

Pixel-Bender Beispiele

medienproduktion/interactive-media/flash/actionscript/pixel-bender/grundlagen

Quelle: alle Beispiele aus Adobe Pixel bender Exchange

Page 34: Medienproduktion Sommersemester 2010 - fue-wiki.tubit.tu ...fue-wiki.tubit.tu-berlin.de/lib/exe/fetch.php/lehrveranstaltungen:... · Microphone-Klasse • import flash.media.Microphone;

that‘s it...danke und schöne fleißige Semesterferien