Misplaced Pages

MTASC

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.

MTASC (Motion-Twin ActionScript 2 Compiler) is an ActionScript 2.0 compiler written in the OCaml programming language by the company Motion Twin . It is free software and can be used alone or with other tools like swfmill to produce SWF files, which contain interactive multimedia content playable with the Flash Player . MTASC is also much faster than the Adobe Flash ActionScript compiler.

#155844

54-566: MTASC is built with optimizing OCaml compilers, and thus provides a speed improvement over the Macromedia Compiler (MMC). MTASC corrects several safety problems that occur when using MMC. The MTASC compiler is stricter than MMC and can detect more errors than MMC; because of this strictness, there are some differences between MMC and MTASC. MTASC is not compatible with ActionScript 2.0 in the local variables scoping, local function definitions, etc. MTASC will not support ActionScript 3.0, which

108-638: A non-disclosure agreement to view it in 2008. Adobe also created the Open Screen Project which removes licensing fees and opens data protocols for Flash. Adobe has also open-sourced many components relating to Flash. Adobe has not been willing to make complete source code of the Flash Player available for free software development and even though free and open source alternatives such as Shumway and Gnash have been built, they are no longer under active development. On May 1, 2008, Adobe announced

162-581: A type system which is both strong and dynamic . The compiler will check types implicitly via type inference and give compile-time errors, but it also enables programs to bypass type-checking and rely on a target platform's dynamic type-handling. All of the native target APIs can be used. Haxe has a sophisticated and flexible type system. The type kinds it offers are classes , interfaces, function-method types, anonymous types, algebraic data types (called enum in Haxe), and abstract types. Parametric polymorphism

216-480: A "lite" version of the Flash authoring tool targeted to new users who only wanted to do a basic drawing, animation, and interactivity. The Basic product was eventually stopped. On December 3, 2005, Adobe Systems acquired Macromedia alongside its product line which included Flash, Dreamweaver , Director / Shockwave , Fireworks , and Authorware . In 2007, Adobe's first version release was Adobe Flash CS3 Professional ,

270-444: A central part of it. Disney Online used FutureSplash animations for their subscription-based service Disney's Daily Blast. Fox Broadcasting Company launched The Simpsons using FutureSplash. In December 1996, FutureSplash was acquired by Macromedia, and Macromedia re-branded and released FutureSplash Animator as Macromedia Flash 1.0 . Flash was a two-part system, a graphics and animation editor known as Macromedia Flash, and

324-724: A growth of 3D content for product demonstrations and virtual tours. In 2007, YouTube offered videos in HTML5 format to support the iPhone and iPad , which did not support Flash Player. After a controversy with Apple , Adobe stopped developing Flash Player for Mobile, focusing its efforts on Adobe AIR applications and HTML5 animation. In 2015, Google introduced Google Swiffy , a tool that converted Flash animation to HTML5, which Google used to automatically convert Flash web ads for mobile devices. In 2016, Google discontinued Swiffy and its support. In 2015, YouTube switched to HTML5 technology on most devices by default; however, YouTube supported

378-650: A player known as Macromedia Flash Player. FutureSplash Animator was an animation tool originally developed for pen-based computing devices. Due to the small size of the FutureSplash Viewer , it was particularly suited for download on the Web. Macromedia distributed Flash Player as a free browser plugin in order to quickly gain market share. By 2005, more computers worldwide had Flash Player installed than any other Web media format, including Java , QuickTime , RealNetworks , and Windows Media Player . Macromedia upgraded

432-429: A type-safe manner, like C++ header files can describe the structure of existing object files . This enables to use the values defined in the files as if they were statically typed Haxe entities. Beside externs, other solutions exist to access each platform's native capabilities. Many popular IDEs and source code editors have support available for Haxe development. No particular development environment or tool set

486-501: Is also used compile-time to run macros, which allow modification of the abstract syntax tree (AST). This strategy of compiling to multiple source code languages is inspired by the write once, run anywhere paradigm. It also allows the programmer to choose the best platform for the job. Typical Haxe programs run identically on all platforms, but developers can specify platform-specific code and use conditional compilation to prevent it from compiling on other platforms. The Haxe compiler

540-620: Is an optimizing compiler , and uses field and function inlining , tail recursion elimination , constant folding , loop unrolling and dead code elimination (DCE) to optimize the run-time performance of compiled programs. The Haxe compiler offers opt-in null-safety , it checks compile-time for nullable values. In Haxe, supported platforms are known as "targets", which consist of the following modules: The following table documents platform and language support in Haxe. The Haxe language allows developers to gain access to many platform features, but Haxe

594-470: Is an example of the identity function . Enumerated types are an important feature of the language; they can have type parameters and be recursive. They provide basic support for algebraic data types , allowing the inclusion of product types , in a fashion similar to Haskell and ML . A switch expression can apply pattern matching to an enum value, allowing for elegant solutions to complex programming problems: Examples of parametric enum types are

SECTION 10

#1732883807156

648-474: Is denoted by using arrows between argument types, and between the argument type(s) and return type, as common in many functional languages. However, unlike in prominent examples like Haskell or the ML language family, not all functions are unary functions (functions with one argument only), and in Haxe, functions can't be partially applied per default. Thus, the following type signatures have different semantics than in

702-625: Is needed to make any new technology a success. Haxe is the successor to the open-source ActionScript 2 compiler MTASC , also built by Nicolas Cannasse and is released under the GNU General Public License version 2 or later. The Haxe language can compile into bytecode that can be executed directly by the virtual machines it targets. It can compile to source code in C++ , JavaScript , PHP , C# , Java , Python , and Lua . Haxe also has an interpreter called eval . This same interpreter

756-474: Is not a full featured engine, they might need frameworks that enable create content for certain platforms. Haxe is a general-purpose programming language supporting object-oriented programming , generic programming , and various functional programming constructs. Features such as iterations , exceptions , and reflective programming (code reflection) are also built-in functions of the language and libraries. Unusual among programming languages, Haxe contains

810-507: Is officially recommended by the Haxe Foundation, although VS Code , IntelliJ IDEA and HaxeDevelop have the most support for Haxe development. The core functionalities of syntax highlighting , code completion , refactoring , debugging , etc. are available to various degrees. Development of Haxe began in October 2005. The first alpha version was released on November 14, 2005. Haxe 1.0

864-411: Is possible with classes, algebraic types and function types, giving the language support for generic programming based on type erasure. This includes support for variance in polymorphic functions , although not in type constructors . The type system is static unless annotations for dynamic typing are present, for use with targets that support them. Type checking follows nominal typing with

918-599: Is released under the GNU General Public License (GPL) version 2. Haxe includes a set of features and a standard library supported across all platforms , including numeric data types , strings , arrays , maps , binary , reflective programming , maths, Hypertext Transfer Protocol ( HTTP ), file system and common file formats . Haxe also includes platform-specific application programming interfaces ( APIs ) for each compiler target. Kha , OpenFL , and Heaps.io are popular Haxe frameworks that enable creating multi-platform content from one codebase. Haxe originated with

972-501: Is supported by its successor, Haxe . This multimedia software -related article is a stub . You can help Misplaced Pages by expanding it . Haxe Haxe is a high-level cross-platform programming language and compiler that can produce applications and source code for many different computing platforms from one code-base. It is free and open-source software , released under an MIT License . The compiler, written in OCaml ,

1026-468: The Adobe AIR platform. The Flash Player was deprecated in 2017 and officially discontinued at the end of 2020 for all users outside mainland China, as well as non-enterprise users, with many web browsers and operating systems scheduled to remove the Flash Player software around the same time. Adobe continues to develop Adobe Animate, which supports web standards such as HTML5 instead of the Flash format. In

1080-583: The Apache Flex SDK. End users view Flash content via Flash Player (for web browsers), Adobe AIR (for desktop or mobile apps ), or third-party players such as Scaleform (for video games). Adobe Flash Player (which is available on Microsoft Windows , macOS , and Linux ) enables end users to view Flash content using web browsers . Adobe Flash Lite enabled viewing Flash content on older smartphones , but since has been discontinued and superseded by Adobe AIR. The ActionScript programming language allows

1134-539: The Open Screen Project , with the intent of providing a consistent application interface across devices such as personal computers, mobile devices , and consumer electronics . When the project was announced, seven goals were outlined: the abolition of licensing fees for Adobe Flash Player and Adobe AIR , the removal of restrictions on the use of the Shockwave Flash ( SWF ) and Flash Video (FLV) file formats ,

SECTION 20

#1732883807156

1188-654: The Speedtest.net web service conducted over 9.0 billion speed tests with a utility built with Adobe Flash. In 2016, the service shifted to HTML5 due to the decreasing availability of Adobe Flash Player on PCs. Developers could create rich internet applications and browser plugin -based applets in ActionScript 3.0 programming language with IDEs , including Adobe Flash Builder, FlashDevelop and Powerflasher FDT . Flex applications were typically built using Flex frameworks such as PureMVC. Flash video games were popular on

1242-399: The Flash system between 1996 and 1999 adding MovieClips, Actions (the precursor to ActionScript), Alpha transparency, and other features. As Flash matured, Macromedia's focus shifted from marketing it as a graphics and media tool to promoting it as a Web application platform, adding scripting and data access capabilities to the player while attempting to retain its small footprint. In 2000,

1296-470: The Flash timeline. Other features of Flash CS5 are a new text engine (TLF), new document templates, further improvement to inverse kinematics , new Deco tool effects, live FLV playback preview, and the code snippets panel. Adobe has taken steps to reduce or eliminate Flash licensing costs. For instance, the SWF file format documentation is provided free of charge after they relaxed the requirement of accepting

1350-462: The Flash-based video player for older web browsers and devices until 2017. After Flash 5 introduced ActionScript in 2000, developers combined the visual and programming capabilities of Flash to produce interactive experiences and applications for the Web. Such Web-based applications eventually became known as "Rich Internet Applications" and later "Rich Web Applications". In 2004, Macromedia Flex

1404-468: The Haxe standard library types Option and Either: Haxe also supports generalized algebraic data types (GADTs). Anonymous types are defined by denoting their structure explicitly, using a syntax that follows the mathematical record-based representation of a type. They can be used to implement structural typing for function arguments (see below), and can be given an alias with the keyword typedef : Functions are first-class values in Haxe. Their type

1458-829: The Internet, with portals like Newgrounds , Kongregate , and Armor Games dedicated to hosting Flash-based games. Many Flash games were developed by individuals or groups of friends due to the simplicity of the software. Popular Flash games include Farmville , Alien Hominid , QWOP , Club Penguin , and Dofus . Adobe introduced various technologies to help build video games, including Adobe AIR (to release games for desktop or mobile platforms), Adobe Scout (to improve performance), CrossBridge (to convert C++-based games to run in Flash), and Stage3D (to support GPU-accelerated video games). 3D frameworks like Away3D and Flare3D simplified creation of 3D content for Flash. Adobe AIR allows

1512-545: The accessors public and private , and more advanced methods for access control that are denoted using annotations. Methods and static constant variables can be inlined using the keyword inline . Fields can be marked as final to declare a constant that must be initialized immediately or in the constructor and cannot be written to, in case of function final will mark as non-overridable in subclasses. Interfaces in Haxe are very similar to those in, for example, Java. Haxe supports generic programming . The following

1566-407: The aforementioned languages. The type F1 is a function that takes a String as arguments and returns a value of type Float . Types F1 and F2 denote the same type, except that F2 uses labelled parameter, which is useful for completion and documentation. Types F4 and F5 denote the same type. Both are binary functions that return a binary function of type F3 . For F5

1620-1084: The creation of Flash-based mobile games , which may be published to the Google Play and Apple app stores. Flash is also used to build interfaces and HUDs for 3D video games using Scaleform GFx , a technology that renders Flash content within non-Flash video games. Scaleform is supported by more than 10 major video game engines including Unreal Engine 3 , CryEngine , and PhyreEngine , and has been used to provide 3D interfaces for more than 150 major video game titles since its launch in 2003. Notable users of Flash include DHX Media Vancouver for productions including Pound Puppies , Littlest Pet Shop and My Little Pony: Friendship Is Magic , Fresh TV for Total Drama , Nelvana for 6teen and Clone High , Williams Street for Metalocalypse and Squidbillies , Nickelodeon Animation Studio for El Tigre: The Adventures of Manny Rivera , Starz Media for Wow! Wow! Wubbzy! , Ankama Animation for Wakfu: The Animated Series , among others. The precursor to Flash

1674-490: The development of interactive animations, video games, web applications, desktop applications, and mobile applications. Programmers can implement Flash software using an IDE such as Adobe Animate, Adobe Flash Builder, Adobe Director , FlashDevelop, and Powerflasher FDT . Adobe AIR enables full-featured desktop and mobile applications to be developed with Flash and published for Windows , macOS , Android , iOS , Xbox One , PlayStation 4 , Wii U , and Nintendo Switch . Flash

MTASC - Misplaced Pages Continue

1728-741: The early 2000s, Flash was widely installed on desktop computers , and was often used to display interactive web pages and online games , and to play video and audio content. In 2005, YouTube was founded by former PayPal employees, and it used Adobe Flash Player as a means to display compressed video content on the web. Between 2000 and 2010, numerous businesses used Flash-based websites to launch new products, or to create interactive company portals. Notable users include Nike , Hewlett-Packard (more commonly known as HP), Nokia , General Electric , World Wildlife Fund , HBO , Cartoon Network , Disney , and Motorola . After Adobe introduced hardware-accelerated 3D for Flash ( Stage3D ), Flash websites saw

1782-408: The exception of anonymous types where structural typing is used instead. Finally, type inference is supported, allowing for variable declarations without type annotations . All Haxe code is organized in modules, which are addressed using paths. In essence, each .hx file represents a module which may contain several types. For example, to create the type A in the package my.pack as shown,

1836-578: The first major version of ActionScript was developed, and released with Flash 5 . Actionscript 2.0 was released with Flash MX 2004 and supported object-oriented programming , improved UI components and other programming features. The last version of Flash released by Macromedia was Flash 8 , which focused on graphical upgrades such as filters (blur, drop shadow, etc.), blend modes (similar to Adobe Photoshop ), and advanced features for FLV video . Animator Flash 1 Flash 2 Flash 3 Flash 4 Flash 5 Flash MX (6) Flash MX 2004 (7) ActionScript 2.0

1890-437: The first version of Adobe Integrated Runtime (later re-branded as Adobe AIR ), a runtime engine that replaced Flash Player, and provided additional capabilities to the ActionScript 3.0 language to build desktop and mobile applications. With AIR, developers could access the file system (the user's files and folders), and connected devices such as a joystick, gamepad, and sensors for the first time. In 2011, Adobe Flash Player 11

1944-713: The folder structure should be my\pack and the file could be A.hx in the folder pack . In other modules, other types can be imported by putting import statements below the package definition, e.g. import my.pack.A; A module can contain multiple types, such as the following. It is possible to import one type at a time from that module, using import my.pack2.A; . A type may be private , in which case only its containing module can access it. Classes (keyword class ) in Haxe are similar to those in Java or TypeScript. Their fields can be either methods, variables, or properties, each static or per instance respectively. Haxe supports

1998-521: The idea of supporting client-side and server-side programming in one language, and simplifying the communication logic between them. Code written in Haxe can be compiled into JavaScript , C++ , Java , JVM , PHP , C# , Python , Lua and Node.js . Haxe can also directly compile SWF , HashLink, and NekoVM bytecode and also runs in interpreted mode. Haxe supports externs (definition files) that can contain data type information of extant libraries to describe target-specific interaction in

2052-452: The implicit interfaces of the language Go as to typing. In contrast with Go interfaces, it is possible to construct a value using an anonymous type. The Haxe compiler is divided into one frontend and multiple backends. The frontend creates an abstract syntax tree (AST) from the source code, and performs type checking, macro expansion , and optimization on the AST. The various backends translate

2106-547: The ninth major version of Flash. It introduced the ActionScript 3.0 programming language, which supported modern programming practices and enabled business applications to be developed with Flash. Adobe Flex Builder (built on Eclipse ) targeted the enterprise application development market, and was also released the same year. Flex Builder included the Flex SDK, a set of components that included charting, advanced UI, and data services ( Flex Data Services ). In 2008, Adobe released

2160-520: The potential for a vector-based web animation tool that might challenge Macromedia Shockwave technology. In 1995, FutureWave modified SmartSketch by adding frame-by-frame animation features and released this new product as FutureSplash Animator on Macintosh and PC. FutureWave approached Adobe Systems with an offer to sell them FutureSplash in 1995, but Adobe turned down the offer at that time. Microsoft wanted to create an "online TV network" ( MSN 2.0 ) and adopted FutureSplash animated content as

2214-598: The primary authoring software for Flash content, to Adobe Animate to reflect its growing use for authoring HTML5 content in favor of Flash content. ActionScript 3.0 was released with this version, along with ActionScript Virtual Machine 2.0 (AVM2) for faster code execution and garbage collection New programming features included: strongly typed variables with type safety, runtime errors, improved events, display list instead of "depth" system, and many new classes (Socket, ByteArray, Loader, RegExp, etc.). AS3 allowed entire applications to be written in code, without needing

MTASC - Misplaced Pages Continue

2268-1082: The processed AST into source code or generate bytecode , depending on their target. The compiler is written in OCaml . It can be run in server-mode to provide code completion for integrated development environments (IDEs) and maintain a cache, to further speed compiling. Adobe Flash Adobe Flash (formerly Macromedia Flash and FutureSplash ) is a discontinued multimedia software platform used for production of animations , rich internet applications , desktop applications , mobile apps , mobile games , and embedded web browser video players. Flash displays text, vector graphics , and raster graphics to provide animations, video games, and applications. It allows streaming of audio and video , and can capture mouse, keyboard, microphone, and camera input. Artists may produce Flash graphics and animations using Adobe Animate (formerly known as Adobe Flash Professional). Software developers may produce applications and video games using Adobe Flash Builder , FlashDevelop, Flash Catalyst , or any text editor combined with

2322-404: The publishing of application programming interfaces for porting Flash to new devices, and the publishing of The Flash Cast protocol and Action Message Format (AMF), which let Flash applications receive information from remote databases. As of February 2009 , the specifications removing the restrictions on the use of SWF and FLV/F4V specs have been published. The Flash Cast protocol—now known as

2376-525: The right thing. Abstract types are entirely a compile-time feature of Haxe and do not exist at all at program runtime. As an example, both variables using abstract types above Mile and Kilometer will be of the type Float at runtime. In many functional programming languages, structural typing plays a major role. Haxe employs it in the presence of anonymous types, using the nominative typing of object-oriented programming , when only named types are involved. Anonymous types in Haxe are analogous to

2430-408: The risk of mixing up values of the same underlying type, but with different meanings (e.g., miles vs. km). The following example assumes that the metric system is the default, while a conversion to miles is needed for legacy data. Haxe can automatically convert miles to kilometers, but not the reverse. As the example shows, no explicit conversion is needed for the assignment "km = one100Miles;" to do

2484-544: The syntax to declare a function type within a function type is used. In Haxe, anonymous functions are called lambda, and use the syntax function(argument-list) expression; . A relatively new addition to the Haxe type system is a concept termed abstract types . As used in Haxe, this refers to something different from a conventional abstract type . They are used to make conversions between types implicit, allowing reuse of existing types for specific purposes, like implementing types for units of measurement. This greatly reduces

2538-489: The tenth version of Flash, Adobe Flash CS4 . Flash 10 improved animation capabilities within the Flash editor, adding a motion editor panel (similar to Adobe After Effects ), inverse kinematics (bones), basic 3D object animation, object-based animation, and other text and graphics features. Flash Player 10 included an in-built 3D engine (without GPU acceleration) that allowed basic object transformations in 3D space (position, rotation, scaling). Also in 2008, Adobe released

2592-463: Was SmartSketch, a product published by FutureWave Software in 1993. The company was founded by Charlie Jackson , Jonathan Gay , and Michelle Welsh. SmartSketch was a vector drawing application for pen computers running the PenPoint OS . When PenPoint failed in the marketplace, SmartSketch was ported to Microsoft Windows and Mac OS . As the Internet became more popular, FutureWave realized

2646-456: Was initially used to create fully-interactive websites, but this approach was phased out with the introduction of HTML5 . Instead, Flash found a niche as the dominant platform for online multimedia content, particularly for browser games . Following an open letter written by Steve Jobs in 2010 stating that he would not approve the use of Flash on Apple 's iOS devices due to numerous security flaws, use of Flash declined as Adobe transitioned to

2700-475: Was released in April 2006, with support for Adobe Flash , JavaScript , and NekoVM programs. Support for PHP was added in 2008, and C++ was added in 2009. More platforms such as C# and Java were added with a compiler overhaul in 2012. Haxe was developed by Nicolas Cannasse and other contributors, and was originally named haXe because it was short, simple, and "has an X inside", which the author asserts humorously

2754-541: Was released with this version, enabling object-oriented programming but lacking the easier "Script assist" method of writing code. JavaScript for Flash (JSFL) allowed users to write scripts to automate tasks within the Flash editor. New programming features included: web services integration, MP3/FLV media playback components, XML data service components, data binding APIs, the Project Panel, V2 UI components, and Transition libraries. Flash 8 Macromedia Flash Basic 8,

SECTION 50

#1732883807156

2808-506: Was released, and specifically targeted the application development market. Flex introduced new user interface components, advanced data visualization components, data remoting, and a modern IDE (Flash Builder). Flex competed with Asynchronous JavaScript and XML (AJAX) and Microsoft Silverlight during its tenure. Flex was upgraded to support integration with remote data sources, using AMF , BlazeDS , Adobe LiveCycle , Amazon Elastic Compute Cloud , and others. Between 2006 and 2016,

2862-402: Was released, and with it the first version of Stage3D , allowing GPU-accelerated 3D rendering for Flash applications and games on desktop platforms such as Microsoft Windows and Mac OS X . Adobe further improved 3D capabilities from 2011 to 2013, adding support for 3D rendering on Android and iOS platforms, alpha-channels, compressed textures, texture atlases , and other features. Adobe AIR

2916-692: Was upgraded to support 64-bit computers, and to allow developers to add additional functionality to the AIR runtime using AIR Native Extensions (ANE). In May 2014, Adobe announced that Adobe AIR was used in over 100,000 unique applications and had over 1 billion installations logged worldwide. Adobe AIR was voted the Best Mobile Application Development product at the Consumer Electronics Show on two consecutive years (CES 2014 and CES 2015). In 2016, Adobe renamed Flash Professional,

#155844