SMM5101 (ADVANCED MULTIMEDIA PROGRAMMING) Overview on Approaches to Multimedia Programming.

21
SMM5101 (ADVANCED MULTIMEDIA PROGRAMMING) Overview on Approaches to Multimedia Programming
  • date post

    19-Dec-2015
  • Category

    Documents

  • view

    222
  • download

    1

Transcript of SMM5101 (ADVANCED MULTIMEDIA PROGRAMMING) Overview on Approaches to Multimedia Programming.

Page 1: SMM5101 (ADVANCED MULTIMEDIA PROGRAMMING) Overview on Approaches to Multimedia Programming.

SMM5101(ADVANCED MULTIMEDIA PROGRAMMING)

SMM5101(ADVANCED MULTIMEDIA PROGRAMMING)

Overview on Approaches to Multimedia Programming

Page 2: SMM5101 (ADVANCED MULTIMEDIA PROGRAMMING) Overview on Approaches to Multimedia Programming.

Outline

Introduction History of Multimedia Programming

Director Flash

Director and Lingo: Advanced Multimedia Authoring An introductory example Lingo scripting Director behaviours

Page 3: SMM5101 (ADVANCED MULTIMEDIA PROGRAMMING) Overview on Approaches to Multimedia Programming.

Introduction

Multimedia programming requires a mix of skills:

The ability to write scripts that people will enjoy reading or listening to

Graphic design, layout and visualisation skills

Programming and technical skills to add hot buttons, animations, audio and effects to your production

Page 4: SMM5101 (ADVANCED MULTIMEDIA PROGRAMMING) Overview on Approaches to Multimedia Programming.

History of MM Programming: Director

1984: Macromind (Jay Fenton, Mark Canter, Mark Pierce)

1985: VideoWorks for “Guided Tour” to Apple Macintosh OS

1987: VideoWorks II (colour + animation) 1988: VideoWorks Interactive Pro, renamed to Director

1.0 using Lingo Scripting (John Thompson & Erik Neumann) –

replace Tiny Basic scripting by Jay Fenton) 1990: Director 2.0 (John Thompson )

Used to create the displays for “Star Trek” 1991 (or 92): Director 3.0 (Mac) and Director for

Windows (Windows 3.1) 1993: Macromedia Director

Support a new and exciting technology (Quicktime) 1994: Director 4.0

First authoring environment with files were cross-platform (Mac and Windows)

Page 5: SMM5101 (ADVANCED MULTIMEDIA PROGRAMMING) Overview on Approaches to Multimedia Programming.

1998: Director 7 was released as part of the “Shockwave Internet Studio” RGB support 1000 sprite channels, sprite rotation and skewing embedded fonts and vector space

2000: Director 8 and 8.5 was released and Macromedia puts strong effort into the Flash authoring environment

2002: Director MX (aka version 9) Flash compatable and some authoring enhancement

2004: Director MX 2004 supports JavaScript syntax as alternative to Lingo

2005: Adobe Director 2006: Shockwave Player 10.1.1r16 (allow the use

of Flash 8) 2008: Adobe Director 11

History of MM Programming: Director

Page 6: SMM5101 (ADVANCED MULTIMEDIA PROGRAMMING) Overview on Approaches to Multimedia Programming.

1993: FutureWave Software to dominate the market for graphics software on pen computers (Jonathan Gay)

1994: SmartSketch (without animation) 1996: FutureSplash Animator Nov 1996: internet come in for TV-like experience Dec 1996: sold FutureSplash Animator to

Macromedia Macromedia Flash 1.0 2001: Flash has been through five versions at

Macromedia Now: Flash become a complete multimedia

development environment with 500,000 developers and over 325 million users of the flash player Flash MX Flash CS3 Flash CS4

History of MM Programming: Flash

Page 7: SMM5101 (ADVANCED MULTIMEDIA PROGRAMMING) Overview on Approaches to Multimedia Programming.

Director: Introduction Example

Pictures, Sprites and Cast Cast members may be of various kinds

(media elements): Bitmap, vector graphics, sound, …

A sprite is an instance of a cast member A picture contains a number of sprites

(those currently on stage) A score is like the timeline in Flash

Lifetime of sprites can be easily adjusted by mouse movements

Page 8: SMM5101 (ADVANCED MULTIMEDIA PROGRAMMING) Overview on Approaches to Multimedia Programming.

ScoreStage

cast

Editor

Page 9: SMM5101 (ADVANCED MULTIMEDIA PROGRAMMING) Overview on Approaches to Multimedia Programming.

Tweening Tweening essentially works like in Flash

Key frames need to be inserted to modify sprite Alternatively whole sprite can be converted to

single pictures Details of sprite tweening:

Director: Introduction Example

Page 10: SMM5101 (ADVANCED MULTIMEDIA PROGRAMMING) Overview on Approaches to Multimedia Programming.

Effect Channels Effect channels apply specific effects to the whole

stage Shown above the sprite channels, have to be made visible explicitly

Transition channel Applies transitions like in movie editing

Tempo channel: Pause, waiting for a cue point in some continuous media, waiting for

user input, … Colour palette channel:

Defining a colour palette, creating colour effects Sound channels:

Two channels only Scripting channel

Director: Introduction Example

Page 11: SMM5101 (ADVANCED MULTIMEDIA PROGRAMMING) Overview on Approaches to Multimedia Programming.

Motion Tweening Very similar to Flash

but easier Each sprite has default

registration point for a motion path

Drawing motion paths is straighforward

Key frames used to reshape motion path

Director: Introduction Example

Page 12: SMM5101 (ADVANCED MULTIMEDIA PROGRAMMING) Overview on Approaches to Multimedia Programming.

Director: Lingo Scripting

Lingo interpreted There is a “message” window which allows a

direct dialogue with the Lingo programming/scripting language

Page 13: SMM5101 (ADVANCED MULTIMEDIA PROGRAMMING) Overview on Approaches to Multimedia Programming.

The Lingo Paradigm Lingo is very much inspired by “HyperTalk”

(Apple) All programming is programming event handlers There is no main program

Effectively the event handler of “prepareMovie” is kind of a main program

Program code is only meaningful together with project file of the authoring system

No stand-alone programs All code is scattered over the project

Director: Lingo Scripting

Page 14: SMM5101 (ADVANCED MULTIMEDIA PROGRAMMING) Overview on Approaches to Multimedia Programming.

Event Handler Running animations can be influenced by event

handler: Lingo: “on mouseUp go to frame X end”

Director: Lingo Scripting

Page 15: SMM5101 (ADVANCED MULTIMEDIA PROGRAMMING) Overview on Approaches to Multimedia Programming.

Types of Lingo Scripts Hierarchical search for scripts (in this order): behaviours scripts ()

Executed when respective sprite is active or when a specific frame is shown

(object scripts) contain keyword “me” Cast scripts

Once defined for all instances (class scripts)

Movie scripts Global for the whole movie

If no script is found, execution continues If a script is found, more general scripts are ignored Practical hint for working with scripts in Director:

Use Script window and adjust script type

Director: Lingo Scripting

Page 16: SMM5101 (ADVANCED MULTIMEDIA PROGRAMMING) Overview on Approaches to Multimedia Programming.

Local and Global Variables in Lingo By default, all variables are local in procedure Variables can be declared global

but then are global for whole movie

Example for global variables: global myCounter on mouseUp

set myCounter = myCounter + 1 put myCounter

end

Director: Lingo Scripting

Page 17: SMM5101 (ADVANCED MULTIMEDIA PROGRAMMING) Overview on Approaches to Multimedia Programming.

Object-Orientation in Director: “Parent-Child Programming” (1)

“Parent script” (class):

property pVorname, pNachname

on new me return me

end

on fill me, vorname, nachname pVorname = vorname pNachname = nachname

end

Director: Lingo Scripting

Page 18: SMM5101 (ADVANCED MULTIMEDIA PROGRAMMING) Overview on Approaches to Multimedia Programming.

Object-Orientation in Director: “Parent-Child Programming” (2)

Global script (film script): global lUsers

on prepareMovielUsers = []

end

on fillOut temp = new(script "parent script") fill(temp, member("vorname").text, member("nachname").text) append(lUsers, temp) clearfields

end

on clearFields vorname, nachname are text input fields member("vorname").text = "" member("nachname").text = ""

end

Director: Lingo Scripting

Page 19: SMM5101 (ADVANCED MULTIMEDIA PROGRAMMING) Overview on Approaches to Multimedia Programming.

Object-Orientation in Director: “Parent-Child Programming” (3)

Local script for enter button: on mouseUp

fillOut()

end

Director: Lingo Scripting

Page 20: SMM5101 (ADVANCED MULTIMEDIA PROGRAMMING) Overview on Approaches to Multimedia Programming.

Behaviours in Director Lingo programming is too tedious for many

developers Pre-fabricated “behaviour” blocks (similar to

software components) See Window->Library, several categories Application developer works by drag&drop

Select behaviour Drag it onto object creating the firing event

Example: Sound playing behaviour Create an empty film Create a button (“Music”) Import some music Look for “play sound” behaviour in library Drag it onto button This is equivalent to a lot of Lingo

programming!

Director: Behaviours

Page 21: SMM5101 (ADVANCED MULTIMEDIA PROGRAMMING) Overview on Approaches to Multimedia Programming.

Director & Lingo: Summary

Lingo language was very innovative at its time but is outdated Syntax was modernized

“the xy of abc” replaced by “abc.xy” JavaScript alternative being introduced

Conceptually very similar to Flash Fusion of both programs apparently under way

Nice ideas: Effect channels Drag & drop behaviours

Interactivity only at runtime Very restrictive compared e.g. to Squeak’s mixture of

development time/runtime interaction Professional support for wide range of media and large built-

in library An alternative for nowaday’s development tasks but not a model

for the future