ActionScript: Difference between revisions

Content deleted Content added
m Reverted 1 edit by Coder1992 (talk) to last revision by Roost
copyedit, completed sentences
Line 23:
'''ActionScript''' is an [[object-oriented programming]] language originally developed by [[Macromedia|Macromedia Inc.]] (later acquired by [[Adobe Systems|Adobe]]). It is influenced by [[HyperTalk]], the scripting language for [[HyperCard]].<ref>{{cite web|url=http://www.zdnet.com/blog/government/apples-lost-decade-hypercard-and-what-might-not-have-been-if-apple-then-was-like-apple-is-today/10185|title=Apple's lost decade, HyperCard, and what might NOT have been if Apple then was like Apple is today|work=zdnet.com|date=2011-04-17|access-date=2014-12-04}}</ref> It is now an implementation of [[ECMAScript]] (meaning it is a superset of the syntax and semantics of the language more widely known as [[JavaScript]]), though it originally arose as a sibling, both being influenced by [[HyperTalk]]. ActionScript code is usually converted to byte-code format by the compiler.
 
ActionScript is used primarily for the development of websites and software targeting the [[Adobe Flash]] platform, originally finding use on [[Webweb page]]s in the form of embedded [[SWF]] files.
 
ActionScript 3 is also used with the [[Adobe AIR]] system for the development of desktop and mobile applications. The language itself is open-source in that its specification is offered free of charge<ref>{{Cite web |url=http://help.adobe.com/livedocs/specs/actionscript/3/wwhelp/wwhimpl/js/html/wwhelp.htm |title=ActionScript 3 Language Specification |access-date=November 12, 2016 |archive-url=https://web.archive.org/web/20170327122455/http://help.adobe.com/livedocs/specs/actionscript/3/wwhelp/wwhimpl/js/html/wwhelp.htm |archive-date=March 27, 2017 |url-status=dead |df=mdy-all }}</ref> and both an open -source compiler (as part of [[Apache Flex]]) and open -source virtual machine ([[Tamarin (software)|Tamarin]]) are available.
 
ActionScript was also used with [[Scaleform GFx]] for the development of 3Dthree-dimensional video -game user interfaces and [[Headsheads up display|HUD]]s.
 
==Overview==
ActionScript was initially designed for controlling simple 2Dtwo-dimensional vector animations made in [[Adobe Flash]] (formerly Macromedia Flash). Initially focused on animation, early versions of Flash content offered few interactivity features and, thus had very limited scripting capability. Later versions added functionality allowing for the creation of web-based games and [[rich web application]]s with streaming media (such as video and audio). Today, ActionScript is suitable for desktop and mobile development through Adobe AIR,; it is used in some database applications and in basic robotics as in [[Make Controller Kit]].
 
Flash MX 2004 introduced ActionScript 2.0, a [[scripting language]] more suited to the development of Flash applications. ItSaving time is often possible to save time by scripting something rather than animating it, which usually also enables a higher level of flexibility when editing.
 
Since the arrival of the Flash Player 9 alpha (in 2006), a newer version of ActionScript has been released, ActionScript 3.0. This version of the language is intended to be compiled and run on a version of the [[ActionScript Virtual Machine]] that has been itself completely re-writtenrewritten from the ground up (dubbed AVM2).<ref>{{cite web|url=https://www.adobe.com/devnet/actionscript/articles/six_reasons_as3.html |last1=Brimelow |first1=Lee |title=Six reasons to use ActionScript 3.0 |publisher=Adobe Systems Incorporated |date=August 18, 2008|access-date=June 18, 2010}}</ref> Because of this, code written in ActionScript 3.0 is generally targeted for Flash Player 9 and higher, and will not work in previous versions. At the same time, ActionScript 3.0 executes up to 10 times faster than legacy ActionScript code due to the [[Just-in-time compilation|Justjust-Inin-Timetime compiler]] enhancements.<ref>{{cite web|url=https://www.adobe.com/devnet/actionscript/articles/actionscript3_overview.html |last1=Grossman |first1=Gary |last2=Huang |first2=Emmy |title=ActionScript 3.0 overview |publisher=Adobe Systems Incorporated |date=June 27, 2006|access-date=June 18, 2010}}</ref>
 
Flash libraries can be used with the XML capabilities of the browser to render rich content in the browser. This technology is known as Asynchronous Flash and XML, much like AJAX. Adobe offers its Flex product line to meet the demand for rich web applications built on the Flash runtime, with behaviors and programming done in ActionScript. ActionScript 3.0 forms the foundation of the Flex 2 API.
Line 44:
 
===Timeline by player version===
* '''Flash Player 2''': The first version with scripting support., Actionsits actions included gotoAndPlay, gotoAndStop, nextFrame and nextScene for timeline control.
* '''Flash Player 3''': Expanded basic scripting support, withit has the ability to load external [[SWF]]s (loadMovie).
* '''Flash Player 4''': FirstThe first player with a full scripting implementation (called ''Actions'')., Thethe scripting was a flash Flash-based syntax and contained support for loops, conditionals, variables, and other basic language constructs.
* '''Flash Player 5''': Included in the first version of ActionScript., it Usedused [[prototype-based programming]] based on ECMAScript,<ref>{{cite web|url=http://www.ecma-international.org/publications/standards/Ecma-262.htm |title=Standard ECMA-262 |publisher=Ecma-international.org |access-date=April 22, 2013}}</ref> and allowed full [[procedural programming]] and object-oriented programming. Design based development.
* '''Flash Player 6''': Addedadded an event -handling model, accessibility controls, and support for [[switch statement|switch]]. The first version with support for the [[Action Message Format|AMF]] and [[Real Time Messaging Protocol|RTMP]] protocols which allowed for on demand audio/video streaming.
* '''Flash Player 7''': Additions to it include CSS styling for text and support for ActionScript 2.0, a programming language based on the ECMAScript 4 Netscape Proposal.<ref>{{cite web|url=http://www.mozilla.org/js/language/es4.html |archive-url=https://web.archive.org/web/20070711065258/http://www.mozilla.org/js/language/es4.html |url-status=dead |archive-date=July 11, 2007 |title=ECMAScript 4 Netscape Proposal |publisher=[[Netscape]] |editor=Waldemar Horwat |date=June 30, 2003 |access-date=April 11, 2019 }}</ref> with [[class (computer science)|class]]-based [[inheritance (computer science)|inheritance]]. However, ActionScript 2.0 can [[cross compile]] to ActionScript 1.0 [[byte-code]], so that it can run in Flash Player 6.
* '''Flash Player 8''': Furtherfurther extended ActionScript 1/ActionScript 2 by adding new class libraries with APIs for controlling bitmap data at run-time, file uploads, and live filters for blur and dropshadow.
* '''Flash Player 9 (initially called 8.5)''': Addedadded ActionScript 3.0 with the advent of a new virtual machine, called [[ActionScript Virtual Machine 2]] (AVM2), which coexists with the previous AVM1 needed to support legacy content. Performance increases were a major objective for this release of the player, including a new [[Just In Time compilation|JIT]] compiler. Support for binary sockets, [[E4X]] XML parsing, full-screen mode, and Regularregular Expressionsexpressions were added. This is the first release of the player to be titled Adobe Flash Player.<ref>{{cite web|url=https://www.adobe.com/products/flashplayer |title=Flash Player &#124; Adobe Flash Player 11 &#124; Overview |publisher=Adobe.com |date=April 9, 2013 |access-date=April 22, 2013}}</ref>
* '''Flash Player 10 (initially called Astro)''': Added basic [[3D computer graphics|3D]] manipulation, such as rotating on the X, Y, and Z axis, a 3D drawing API, and [[texture mapping]]. Ability to create custom filters using [[Adobe Pixel Bender]]. Several visual processing tasks are now offloaded to the [[GPU]] which gives a noticeable decrease to rendering time for each frame, resulting in higher [[frame rate]]s, especially with [[H.264]] video. There is a new sound API which allows for custom creation of audio in flash, something that has never been possible before.<ref>{{cite web|url=http://labs.adobe.com/technologies/flashplayer10/ |title=Adobe Labs – Adobe Flash Player 10.1 |publisher=Labs.adobe.com |access-date=December 17, 2009| archive-url= https://web.archive.org/web/20100105125609/http://labs.adobe.com/technologies/flashplayer10/| archive-date= January 5, 2010 | url-status= live}}</ref> Furthermore, Flash Player 10 supports Peer to Peer (P2P) communication with [[Real Time Media Flow Protocol]] (RTMFP).
* '''Flash Player 11''': The major addition in this version are the [[Stage3D]]-based advanced (graphic card accelerated) 3D capabilities for Windows Desktop, Mac Desktop, [[iOS]], [[Android (operating system)|Android]], and other major platforms. Significant compatibility improvements have been added for the iOS platform, and other non-desktop platforms. Other features include H.264 encoding for cameras, Native [[JSON]] support, Cubic Bézier Curves, a secure random number generator, [[LZMA]] compression for swf files, workers to offload some code execution to other processor threads, graphics card accelerated camera feed rendering, memory intrinsics and performance analysis, and the ActionScript Compiler 2.0, as well as some other minor additions.<ref>{{cite web|url=http://download.macromedia.com/pub/labs/flashplatformruntimes/shared/flashplayer11_air3_b1_releasenotes_071311.pdf |archive-url=https://web.archive.org/web/20110714222550/http://download.macromedia.com/pub/labs/flashplatformruntimes/shared/flashplayer11_air3_b1_releasenotes_071311.pdf |url-status=dead |archive-date=2011-07-14 |title=Flash Player 11 and AIR 3 Release Notes for Adobe Labs }}</ref>
* '''Flash Player 11.2''': released in March 2012, focused on adding features that are key for the gaming and video markets. Some of the features in the release include the following: Mouse-lock support. Right and middle mouse-click support. Context menu disabling. Hardware-accelerated graphics/Stage 3D support for Apple iOS and Android via Adobe AIR. Support for more hardware accelerated video cards (from January 2008) in order to expand availability of hardware-accelerated content. New Throttle event API (dispatches event when Flash Player throttles, pauses, or resumes content). Multithreaded video decoding pipeline on PCs, which improves overall performance of video on all desktop platforms. Notification of use of premium features in the debug players; content runs unrestricted in the release players.
* '''Flash Player 11.3''': released in June 2012, focused on enabling features and functionality key for the gaming market, as well as addressing popular feature requests from developers. Some of the features in this release include the following: Keyboard input support in full-screen mode. Improved audio support for working with low-latency audio. Ability to progressively stream textures for Stage 3D content. Protected mode for Flash Player in Firefox. Frame label events. Support for compressing BitmapData to JPEG and PNG formats. Support for Mac OS X App Store application sandboxing requirements. Text streaming support for Stage 3D. Expanded information about GPU driver details. Bitmap draw with quality API (new). Release outside mouse event API. Flash Player silent update support for Mac OS. Stylus support for Android 4.0 devices (Adobe AIR). USB debugging for iOS (Adobe AIR). iOS simulator support (Adobe AIR).
* '''Flash Player 11.4''': releasedReleased in August 2012, it focused on enabling features and functionality that are key for the gaming market, as well as addressing popular feature requests from developers. Some of the features in this release include the following: ActionScript workers (enables concurrent ActionScript execution on separate threads)., Supportsupport for advanced profiling., LZMA compression support for ByteArray., Supportsupport for hardware-accelerated video cards for Stage 3D expanded to 2006., Improvedimproved ActionScript performance when targeting Apple iOS., Performanceperformance index API to inform about performance capabilities of current environment., Supportsupport for compressed textures with alpha support., Supportsupport for StageVideo.attachCamera API., Supportand support for push notifications for iOS (Adobe AIR).
* '''Flash Player 11.5''': releasedReleased in November 2012, it focused on performance improvement and stability. Some of the features in this release include the following: Sharedshared ByteArray support for ActionScript workers., Debugdebug [[stack trace]] in release builds of Flash Player., Variousand various bug fixes.
* '''Flash Player 11.6''': releasedReleased in March 2013, it focuses on performance improvements, security enhancements, and stability. Some of the features in this release include the following: Abilityability to query graphics vector data at runtime., Fullfull-screen permission dialog user interface improvements., Abilityability to load SWFs at runtime when deploying as an AIR application in AOT mode on iOS. Finer, finer-grained control over supported display resolution on iOS devices when deploying as an AIR application., HiDPI support for Flash Professional., and ActionScript 3 access to fast memory operations/intrinsics.
* '''Flash Player 11.7''': releasedReleased in June 2013, code-named "Geary.", Thisthis release focuses on premium video, gaming, security, and stability. Some of the features planned for this release include the following: Android captive runtime debugging., Supportsupport for the [[Ouya|OUYA]] controller., Remoteremote hosting of SWF files on iOS., and Preventingpreventing backup of shared objects on iOS for better iCloud support.
* '''Flash Player 11.8 (code name Harrison)''': Adobe was planning to release this version in the early part of the second half of 2013, code-named "Harrison." This release focused on premium video, gaming, security, and stability. Some of the features in this release would have included the following: Recursiverecursive stop API on MovieClips. and GamePad support on desktop browsers and Android
 
===Timeline by ActionScript version===