Adobe Flash Professional Team Blog

The latest news, tips and insights directly from the Flash team

Category

HTML5

Jul 14, 2015/ActionScript, General, HTML5/

Converting your Flash Ads to HTML5 Canvas

The HTML5 Canvas document type and the associated design and performance capabilities in Flash Professional CC helps you create performance-optimized HTML5 creatives with ease. You can obviously create new ads targeting the HTML5 platform using Flash Professional CC, but you may also have have some existing Flash ads that you want to convert to HTML5 Canvas for targeting them for multiple platforms, especially mobile devices.  Here is how you do it:

  1. Convert your ActionScript document to HTML5 Canvas document using the document type converter.
  2. Replace the ActionScript code commented out as reference in the actions panel with their HTML5 Canvas equivalents. You can use the HTML5 Canvas code snippets panel (Window > Code Snippets) in Flash CC 2015 to get started.

Now, let’s see this in action.  We are going to convert a Flash ad to HTML5 Canvas.

Here is the ActionScript example:

Get Adobe Flash player





The converted HTML5 Canvas file should look like this:


Converting an ActionScript document and assets to HTML5 Canvas

  1. Download the BannerNewFeatures_AS3.zip file, extract the files, and open the BannerNewFeatures_AS3.fla file. You can preview the contents by opening BannerNewFeatures_AS3.swf.
  2. Click Commands > Convert to other document formats to convert the document to HTML5 Canvas document.
    Convert-menu-option
  3. In the Document Type Converter dialog box, select HTML5 Canvas and click Browse to select a location to save the converted FLA.
    Doctype-converter
  4. Click OK. The ad has now been converted in to HTML5 Canvas. Open the .html file in the output directory you specified in the previous step to check the converted output. You can see that all your art assets have been converted in to HTML5 Canvas. However, the ad runs in a continuous loop.  This change happened because we do not automatically convert the ActionScript code to the equivalent JavaScript code.

Note: Flash Professional does not auto-convert any ActionScript code to JavaScript code because there is no foolproof way to get it completely right. However, our HTML5 Canvas (CreateJS) JavaScript APIs mimic ActionScript code fairly closely. We also have some built-in Code Snippets in Flash CC to help you get started with some commonly used actions.

Converting ActionScript code to JavaScript in your HTML5 Canvas document

  1. Click Window > Actions to open the Actions panel. All your ActionScript code in FrameScript are displayed as commented out to help you convert them to HTML5 Canvas.

    ActionScript code commented out

    ActionScript code commented out

  2. In the Actions panel, click the ActionScript code that you want to replace and type in the JavaScript equivalent (if an equivalent code snippet is available in the the HTML5 Canvas section of the Code Snippets panel, you can just double-click on it) For example, the following image shows that the stop () ; function that is commented out in ActionScript has been replaced with its HTML5 equivalent, this.stop () ;
    Replace-code
  3. Press Shift+Alt+F12 to publish and check your output.
  4. To see how all the ActionScript code in the example document were converted in to HTML5 Canvas, download BannerNewFeatures_Canvas.zip and open the BannerNewFeatures_Canvas.fla file. To view the final output in HTML5, download Published-Banner-HTML5.zip. and open the BannerNewFeatures_Canvas.html file.

Codes for commonly used actions

The following are some of the commonly used ActionScript codes and their equivalent JavaScript codes:

  • Symbol Instances are referenced as this.instanceName instead of directly using the instanceName:
    ActionScript HTML5
    mySymbol.x = 100;
    mySymbol.visible=true;
    this.mySymbol.x = 100;
    this.mySymbol.visible=true;

     

  • Variable types and function return types should not be specified in JS:
    ActionScript HTML5
    var myVariable:String
    var myVariable;
    function onClick (event:MouseEvent) :void {
    //body
    
    }
    function onClick (event) {
    //body
    
    }

     

  • trace() is not supported and should be replaced by console.log() or alert():
    ActionScript HTML5
    trace(“Message to display”);
    console.log(“Message to display”);

     

  • Commonly used events in ActionScript and JavaScript:
    ActionScript HTML5
    MouseEvent.CLICK
    "click"
    MouseEvent.MOUSE_DOWN
    "mousedown"
    MouseEvent.MOUSE_UP
    "mouseup"
    MouseEvent.ENTER_FRAME
    "tick"
    MouseEvent.ADDED
    "added"

     

  • Commonly used timeline actions in ActionScript and JavaScript:
    ActionScript HTML5
    stop();
    this.stop();
    <InstanceName>.stop();
    this.<InstanceName>.stop();
    gotoAndStop(5);
    gotoAndStop("label");
    this.gotoAndStop(5);
    this.gotoAndStop("label");

    Refer the EaselJS documentation for more information about other events. Check out the mapping of ActionScript codes and their equivalent JavaScript codes for HTML5 Canvas platform for a comprehensive list of actions.

View and use JavaScript code snippets

  1. Click Window > Code Snippets.
    Code-Snippets-menu
  2. In the Code Snippets panel, expand HTML5 Canvas to see the HTML5 equivalents of your ActionScript codes under different categories.

    Code snippets panel

    Code snippets panel

Useful links

May 12, 2015/HTML5/

HTML5 Canvas: Building the Dragon Age Interactive Story Summary

Grant Skinner did an excellent presentation at FITC Toronto on how he used Flash Professional’s HTML5 Canvas Document to create the “Dragon Age Interactive Story Summary” – an end user online customized interactive overview of choices they’ve made in Dragon Age games.  He is the creator of CreateJS which powers the HTML5 Canvas document type in Flash Professional CC.

Here is the video of the talk –

Ajay Shukla, Sr. Product Manager, Flash Professional CC

May 4, 2015/General, HTML5, Retina Display/

HiDPI/Retina Screen Support for HTML5 Canvas Documents

Fluid and responsive content that scales according to the size of the device screen on which it is being viewed is critical for usability. Finding out the best way to do it has always been tricky, given the wide variety of screen sizes and devices in use and the solutions that exist. Kevin Newman of unFocus Projects recommends a method that he has successfully implemented using devicePixelRatio to match the width and height attributes of the HTML5 canvas element with the pixel ratio of the display device. Adding HiDPI and Retina screen support to an HTML5 Canvas document is as easy as just adding a piece of code once the stage is defined in your published HTML file. Read Kevin’s blog post to learn about how to do it!

To see how it works, check out this page where Kevin has applied this trick.

Mar 15, 2015/General, HTML5, Toolkit for CreateJS/

Behind the scenes of HTML5 Canvas rendering performance

Users typically spend a lot of time on optimizing performance of the exported CreateJS content. The key step in the performance optimization process is identifying the bottlenecks in the process that result in poor performance. Matt Karl from CloudKid was kind enough to share the following utilities and instructions to help you tune your content for better performance.

Size Report

The HTML5 Canvas Size Report.jsfl utility script helps you list down all the library items required for the final rendering and their actual and percentage contribution to the overall package size, as shown in the following screen:

Size-report

Filter Usage

It is well known that symbol filters adversely impact performance (drop shadow, blur, color transforms, and so on). However, for a given FLA, especially if it is a complex animation with nested library items, it is hard to track down the usage details of such filters at a layer or frame number level. The utility script Filter Finder.jsfl does this and displays all the filter usage in the current document as shown in the following image.

Filter-usage

How to generate these reports

  1. Download the utilities, HTML5 Canvas Size Report and Filter Finder to your computer and extract the .jsfl files.
  2. In the latest version of Flash Professional CC, open the HTML5 Canvas document for which you want to generate the reports.
  3. On the Commands menu, click Run Command and select the JSFL utility for the report you want to generate.

Run-Command