Thursday, April 7, 2016

Inspiration #2

Adobe Flash CS6 / Animator

Introduction

I created a flash game using the table from the previous workplace communications exercise. I tested the 3D motion panel in Animator, the found the complier to be very strict. I watched tutorials on simple AS3 class games enclosing AS2 utility classes in package, and javascript notation (appendNode, childNodes), perhaps needing a class to set a depth per object plus sort the display stack. Motion paths can be altered with blur filters for expanding / contracting, also available in the properties panel. They use shape tweens via scripts also included in inDesign such as spiral 3D. Animator has by default a Tween class, which implements penners easing equations. Bounce and elastic are difficult to control, although time can be returned via callbacks or event management to achieve custom tweening.

Results

  • This simple game refreshed my class based knowledge a necessity for Animator AS3
  • A recent project's stage had the lights removed and glow added using noise median.
  • An old 3 shelved bookcase, had a shelf removed using content removal, warp, and patch healing.
  • There is no high score table or information display implemented.
  • I added state machine elements in an initial attempt to simplify it.
  • The Event Manager, Interval, Timeout, Tweener, Filter and Sound Manager classes need development.
  • Auditing for class interaction would simplfy the code into class Head and Player.
  • The fair use of content for study and / or satirical purposes is an exception under copyright law.

Discussion

Model View Controller patterns are part of the Unified Modelling Language and programs like ArgoUML export to a variety of languages. A state machine diagram can organise the sequence of events and code to its simplest form. It can model the situation rather than programming it. The code below is written in object based AS2 using events where possible, button event management is not supported. The system allows bubbling via dispatch, and a Manager class extends Interval and Timeout classes, adding instances to the Event Manager. The Event Manager class is a singleton and can be globally accessed to control sets of intervals, timeouts, and listeners, although listeners are not implemented. The tweener is custom built for multiple mcs, easing, and benchmarking via the interval class.

Some of the fundamentals behind this tweener class are debatable, the need to store a copy of begin, change and end for each movieclip in the targets array. This could achieve more control and interesting animation effects when adding and removing objects, although it is primarily a single mc tweener since tween instances can be created. I need a set of property sets, all stacked, properties within a set are currently stacked, and add a Tweener directory of classes with static moveTo glowTo that create a tweener instance and pass it back to add call backs or events.

I included returning args and propArgs, stacked properties, benchmarked and managed intervals, multiple mcs, although motion change on an mc could handle a set, and the ability to add new functionality. Dispatching events with arguments, and applying arguments to the string literal of the event at once. For instance when myTweener = newTweener(). addProp(). start() is called, I can add myTweener.propertyComplete = fadeOutComplete, or myTweener.addEventListener(Tweener.PROPERTY_COMPLETE, fadeOutComplete). The event system requires the listener to be removed while the call back system doesn't, however modern systems follow UML standards featuring Event / Trigger relationships.

Custom linear algebra could be written to add surface blurs or other photoshop effects, since Animator only supports gaussian blur. The classes I have seems to work well for now and are certainly refinable. The Filter helper class implements the blur and glow filters, with plans to create a XML file storing custom presets for all 9 filters. The FPS Control view event system works well to update displays and class listeners are updated when the controller event is fired. Developing and distributing an AS2, AS3, and JavaScript package with a yearly licence could provide a framework to cover the Adobe subscription.

Action Script CS6 Code
Tweener Class V1
Tweener Class V2

Conclusion

The AS3 Tween class provides this functionality with event listeners, although AS2 doesn't require events or the need to manage them. The inbuilt simplicity could be copied using a call back for looping, rewind, complete, on motion change and complete events. AS3 allows a single tween to be re constructed with multiple properties. It is a large research area and many open source alternatives have refined the easing equations for performance and functionality. Simple commands like glowTo(mc, value) can quicken design generation and refined forms of penners equations run significantly faster, the standard set returns NaN for a duration of 0 rather than the ending value. Many AS3 scripts are freely available for event management.

For a while i've used self contained objects to implement material design and caused many hard lessons while developing. These object systems are unplanned and lead to jumping from object to object. Further event interaction could be added, but it's better to initially create a model. It's a Java technique to create grading software that runs on one command, creating an instance of program. For the next project, I will start with a game class, and the final code will be just new Game() and list the classes. Java is about simulations and using Animator to produce products should be viewed as such, although positives and negatives and black square design should have priority.

The ASM states a graphic designer delivers a communications object which may include animation. It could be used for gifs, currently legacy in photoshop, or interactivity with wow factors to win a contract during initial client presentation. Modern media platforms allow animated text and images in two and three dimensions. Audiences thrive on interaction and require meaningful communication strategies. Designers are encouraged to expand their vision, skills and attributes to responds to the rapid technological growth in this industry.

...Top

References

AS2 Tween Tutorial
AS3 Tween Tutorial
AS3 Tween Class
Robert Penners Easing Equations