This preview shows page 1-2-3-4-5-6-7-8-54-55-56-57-58-59-60-109-110-111-112-113-114-115-116 out of 116 pages.
c def pronounced SEE def Macromedia FlashTM animation language Final Report Dennis Rakhamimov Eric Poirier Charles Catanach Tecuan Flores dr524 columbia edu Group Leader edp29 columbia edu cnc26 columbia edu tf180 columbia edu 1 Table of Contents 1 Introduction 5 1 1 a b Business Level Purpose Proposed Solution 5 5 5 1 2 a b Language Level Goals Approach Object oriented design Functional capability Iteration conditionals Shape and motion tweening motion guides Layering Compile to SWF 7 7 8 8 8 8 8 8 8 2 Language Tutorial 8 2 1 Program Flow 8 2 2 Nested Glyphs 10 2 3 Rotation 10 2 4 Translation 11 3 Language Reference Manual 11 3 1 a b c d e f g h i Lexical Conventions Keywords Arithmetic and Comparison Operators Block Operators Color Identifiers Coordinate Identifiers Range Identifiers Case Sensitivity Scoping Comments Block Comments Single line Comments 11 11 12 12 13 13 13 14 14 14 14 14 3 2 a Data Types and Attributes Fundamental Objects Document Glyph Path Identifiers Primitive Objects line 14 14 14 15 15 15 16 16 b c 2 circle rect ellipse polygon Colors Basic Colors RGB Colors Color Precedence 16 16 17 17 17 17 18 18 3 3 a b Action Type Render Rotate 18 18 19 3 4 a b Control Flow Conditional Iterative 19 19 20 3 5 a b Compilation and Execution Build CDEF Language Compile cdef Program 20 20 21 4 Project Plan 22 4 1 a b Planning Timeline Role Matrix 22 22 22 4 2 a b Specification Nomenclature Programming Style 23 23 23 4 3 a b Development Environment Strategy 23 23 23 5 Architecture 24 5 1 Diagram 24 5 2 a b Description Back End Front End 24 24 24 5 3 a b Features Key Frames Bezier Curves 24 24 25 6 Test Plan 25 6 1 a b Clock Purpose Output 25 25 26 d 3 6 2 a b Guinness Purpose Output 26 26 26 6 3 a b Ferris Wheel Purpose Output 27 27 27 6 4 a b Toilet Purpose Output 27 27 28 6 5 a Illegal Programs Purpose 28 28 7 Lessons Learned 28 7 1 Dennis Rakhamimov Group Leader 28 7 2 Eric Poirier 29 7 3 Charles Catanach 29 7 4 Tecuan Flores 29 8 Appendix 30 8 1 Source Code 30 8 2 Examples 110 8 3 Citations 116 4 1 Introduction 1 1 Business Level a Purpose In the recent years Macromedia FlashTM has gained a prominent position in the web development sector as the platform is powerful the learning curve is manageable and the support is excellent However the Flash GUI authoring environment poses significant challenges in creating relatively complex animations containing interdependent objects with differing actions Short of manually creating an animation frameby frame the GUI enables a Flash artist to utilize tweening a process that automatically generates intermediary frames between a start frame and an end frame The animations created by tweening are generally limited to simple scaling translation or color fade operations While it is possible for an object to follow a pre defined path in a translation operation the complexity of the path is limited by a set of non overlapping curves Creating a number of distinct objects that follow the same type of animation could be tedious forcing the Flash artist to spend considerable time setting up the right amount of layers and frames copy and paste and adjust each object one by one zoom in to precisely position elements and perform other mundane tasks As a bottom line while Flash provides an excellent platform for effective web presentations it hinders the ability to create complex scenes and animations Although Flash includes a scripting language called ActionScript that somewhat facilitates a process such as the one described it is limited in ability still constraining the Flash artist to using the Flash GUI for creating the graphical components The web and graphic developer community can thus greatly benefit from creation of a language that enables the programmatic creation of Flash animations Such language could then be leveraged by a Flash artist to create complex Flash animations without having to utilize the cumbersome Flash GUI b Proposed Solution The solution c defTM with the name created from a combination of our initials 5 This language will enable a developer to algorithmically compose a Flash movie containing animations with scaling layering and translation of a complex group of objects It will logically organize elements in an object oriented structure forming a level of abstraction above the Flash layer and timeline components thus allowing the creation of fully fledged Flash animation with less effort Since the code will feature typical language elements such as iteration and arrays it will also be possible to create a number of objects with similar properties using loops Other language elements such as conditions and functions would also be present allowing for sophisticated logic While the language would permit access to Flash tweening its main method of animation will automatically create frame byframe motion thus permitting for movement that is generally not supported by tweening For example a developer would be able to create an object with a complex shape and set of colors create a curve in the shape of an oval and instruct the object to follow that shape over a period of 20 frames In syntax c defTM will resemble a modern language such as Java A program written in it will be interpreted to Java code which in turn will leverage Flagstone Software s Transform SWF 1 package to create a Flash SWF file Transform SWF is a set of Java libraries that provide programmatic access to elements of the open SWF file format thus creating an intermediary between low level implementation details and the actual Flash components To judge the success of the basic functionality of our project we will write programs that create SWF animations of Ferris wheels The choice of the Ferris wheel suggested by Professor Edwards comes from the fact that this animation would feature motion along a guideline rotation of a complex object as well as a number of similar objects with slightly different properties For instance while each swing on the Ferris wheel must follow the same trajectory the start positions and colors would probably be different We created a sample animation in Flash to test out this hypothesis 2 and while the Flash GUI did allow creation of a simple Ferris wheel the animation was cumbersome to make and required much copy and pasting layer adjustments and other time consuming tasks c defTM will make the task of creating such an animation a breeze 6 In summary our goal is thus to create a well organized and concise language that
View Full Document
Unlocking...