<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE article  PUBLIC "-//NLM//DTD Journal Publishing DTD v3.0 20080202//EN" "http://dtd.nlm.nih.gov/publishing/3.0/journalpublishing3.dtd"><article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" dtd-version="3.0" xml:lang="en" article-type="research article"><front><journal-meta><journal-id journal-id-type="publisher-id">JSEA</journal-id><journal-title-group><journal-title>Journal of Software Engineering and Applications</journal-title></journal-title-group><issn pub-type="epub">1945-3116</issn><publisher><publisher-name>Scientific Research Publishing</publisher-name></publisher></journal-meta><article-meta><article-id pub-id-type="doi">10.4236/jsea.2016.911037</article-id><article-id pub-id-type="publisher-id">JSEA-71860</article-id><article-categories><subj-group subj-group-type="heading"><subject>Articles</subject></subj-group><subj-group subj-group-type="Discipline-v2"><subject>Computer Science&amp;Communications</subject></subj-group></article-categories><title-group><article-title>
 
 
  Translator of Islay 3D Animations into Flash Platform
 
</article-title></title-group><contrib-group><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Michitoshi</surname><given-names>Niibori</given-names></name><xref ref-type="aff" rid="aff1"><sup>1</sup></xref></contrib><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Makoto</surname><given-names>Rokujo</given-names></name><xref ref-type="aff" rid="aff1"><sup>1</sup></xref></contrib><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Shusuke</surname><given-names>Okamoto</given-names></name><xref ref-type="aff" rid="aff2"><sup>2</sup></xref></contrib><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Masaru</surname><given-names>Kamada</given-names></name><xref ref-type="aff" rid="aff3"><sup>3</sup></xref></contrib><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Tatsuhiro</surname><given-names>Yonekura</given-names></name><xref ref-type="aff" rid="aff3"><sup>3</sup></xref></contrib></contrib-group><aff id="aff3"><addr-line>Department of Computer and Information Sciences, Ibaraki University, Hitachi, Japan</addr-line></aff><aff id="aff2"><addr-line>Faculty of Science and Technology, Seikei University, Tokyo, Japan</addr-line></aff><aff id="aff1"><addr-line>Graduate School of Science and Engineering, Ibaraki University, Hitachi, Japan</addr-line></aff><pub-date pub-type="epub"><day>09</day><month>11</month><year>2016</year></pub-date><volume>09</volume><issue>11</issue><fpage>547</fpage><lpage>560</lpage><history><date date-type="received"><day>August</day>	<month>24,</month>	<year>2016</year></date><date date-type="rev-recd"><day>Accepted:</day>	<month>November</month>	<year>6,</year>	</date><date date-type="accepted"><day>November</day>	<month>9,</month>	<year>2016</year></date></history><permissions><copyright-statement>&#169; Copyright  2014 by authors and Scientific Research Publishing Inc. </copyright-statement><copyright-year>2014</copyright-year><license><license-p>This work is licensed under the Creative Commons Attribution International License (CC BY). http://creativecommons.org/licenses/by/4.0/</license-p></license></permissions><abstract><p>
 
 
  The three-dimensional (3D) interactive animations and video games are so attractive that successful educational programming environments like Alice and Kodu Game Lab deal with 3D characters. Islay 3D is another educational programming environment of which feature is an intuitively comprehensive user interface in terms of state transition diagrams. Unfortunately its animation definition was too memory-hungry when played by the built-in interpreter. In this paper, we present a translator of the animation definitions of Islay 3D into ActionScript3 (AS3). Compiling the AS3 codes by way of Papervision3D, we obtain the 3D Flash animation file playable on the Flash platform. It will be shown that the memory and CPU usages will be much saved, quartered and halved, respectively, by virtue of the translator.
 
</p></abstract><kwd-group><kwd>Interactive Animations</kwd><kwd> State Transition Diagrams</kwd><kwd> Flash</kwd></kwd-group></article-meta></front><body><sec id="s1"><title>1. Introduction</title><p>The three-dimensional (3D) modeling is an effective means to enhance the impression of interactive animations and video games at less cost. Adobe Flash Player [<xref ref-type="bibr" rid="scirp.71860-ref1">1</xref>] allows for 3D contents by way of libraries like Papervision3D [<xref ref-type="bibr" rid="scirp.71860-ref2">2</xref>] and is a major platform for movies, interactive contents and video games on the web.</p><p>Adobe Flash Professional [<xref ref-type="bibr" rid="scirp.71860-ref3">3</xref>] is a genuine tool for authoring any kinds of Flash contents. But users have to write programs in the ActionScript language in order to make the movies as interactive as video games. There have also been educational programming environments that allow even children to work on their own dynamic 3D contents. Alice [<xref ref-type="bibr" rid="scirp.71860-ref4">4</xref>] lets children create a virtual 3D world by its scene editor and give the 3D objects in the virtual world to behave according to their program written in its script programming language. Kodu Game Lab [<xref ref-type="bibr" rid="scirp.71860-ref5">5</xref>] is a visual programming environment that lets children describe the behavior of the game characters in terms of event-driven sequences of actions represented by tiles.</p><p>It has been proven that the state-transition diagram, which is the most fundamental principle for automata, is intuitively so comprehensive that even children can create programs for interactive animations and video games in the two-dimensional (2D) world [<xref ref-type="bibr" rid="scirp.71860-ref6">6</xref>] . This programming environment has been distributed with its name Islay. Its 3D version named Islay 3D [<xref ref-type="bibr" rid="scirp.71860-ref7">7</xref>] is an easy-to-use programming environment for authoring interactive 3D animations in terms of state-transition diagrams. It is something between Alice and Kodu Game Lab. Islay 3D is easier to use than Alice because of the state-based programming interface although Alice’s script language is, of course, more powerful. Islay 3D allows for description of behavior explicitly bundled to the states while Kudo’s characters are basically stateless although it is possible for Kudo to re- present (at most 12) states by the concept of pages where the tiles belong to.</p><p>Islay 3D has been developed first as a Microsoft Foundation Class (MFC) application for Microsoft Windows and then rewritten in JavaScript to work on web browsers. The web version of Islay 3D plays the animation by an interpreter written in JavaScript to interpret the animation definition. It works fine on fast computers but is too memory- hungry to run on smaller computers.</p><p>In the 2D world, employing Islay as the front-end user interface, tools for authoring interactive Flash animations have been developed for ActionScript2 [<xref ref-type="bibr" rid="scirp.71860-ref8">8</xref>] and also for ActionScript3 (AS3) [<xref ref-type="bibr" rid="scirp.71860-ref9">9</xref>] .</p><p>In this paper, we present a translator of Islay 3D animations into AS3. Compiling the AS3 codes by way of Papervision3D [<xref ref-type="bibr" rid="scirp.71860-ref2">2</xref>] , we obtain the 3D Flash animation file playable on the Flash platform. Its effectiveness will be evaluated in the aspect of memory and CPU usages saved by virtue of the translator.</p></sec><sec id="s2"><title>2. Islay 3D</title><p>Islay3D [<xref ref-type="bibr" rid="scirp.71860-ref7">7</xref>] is a graphical programming environment where the behavior of animation characters is described in terms of state-transition diagrams. A character can be recursively composed of lower-level characters that behave in the local coordinate system of the upper-level character. It is also possible to attach several state transition diagrams to a character.</p><sec id="s2_1"><title>2.1. Definition of Behavior in Terms of State-Transition Diagrams</title><p>Behavior of animation characters is defined by describing state-transition diagrams on the editor. <xref ref-type="fig" rid="fig1">Figure 1</xref> is a screenshot of the editor. A state represented by an oval has actions for the character to take in the state. Actions are selected out of geometric actions such as parallel translations and rotations or logical ones such as forking other characters. A transition represented by an arrow means that the character shifts its state to the pointed one on condition written along the arrow. In <xref ref-type="fig" rid="fig1">Figure 1</xref>, the diagram is attached</p><fig id="fig1"  position="float"><label><xref ref-type="fig" rid="fig1">Figure 1</xref></label><caption><title> Screenshot of the editor</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-9302304x2.png"/></fig><p>to the character so that it turns left or right when an arrow key is pressed.</p></sec><sec id="s2_2"><title>2.2. Hierarchical Structure of Characters</title><p>A character can be recursively composed of lower-level characters as illustrated in <xref ref-type="fig" rid="fig2">Figure 2</xref>. Each character encapsulated in an orange oval has its shape in the blue oval and definition of behavior represented by the yellow box being a set of state-transition diagrams.</p><p>The original character on the top level has its appearance composed of other characters representing its head, body, right and left hands, and feet. This character has a hammer in the right hand so that the right arm is defined as an upper-level character composed of an arm character and a hammer character. The 3D objects representing the bottom-level characters are called atom 3D objects hereafter.</p><p>This hierarchical structure is nothing special but a standard model for composing 3D objects. The lower-level characters behave relative to the local coordinate system of the upper-level character. The top-level characters behave relative to the global coordinate system.</p></sec><sec id="s2_3"><title>2.3. Actions and Events</title><p>Actions are selected out of geometric actions such as parallel translations and rotations or logical ones such as forking other characters and sending messages. A state can have</p><fig id="fig2"  position="float"><label><xref ref-type="fig" rid="fig2">Figure 2</xref></label><caption><title> Hierarchal structure of characters</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-9302304x3.png"/></fig><p>both geometric action and logical action.</p><p>Events include key press, messages, and collisions with other characters or walls that condition transition of the states.</p></sec><sec id="s2_4"><title>2.4. Data Structure of Animation Definition</title><p>The definition of animation includes the shapes of atom 3D objects, character definitions composed of state-transition diagrams and references to lower-level characters with their initial relative positions, and groups of characters to be forked at the same time. Those data are stored in an XML-based format as their example in <xref ref-type="fig" rid="fig3">Figure 3</xref>.</p><p>An atom 3D object’s shape is expressed in a digital asset exchange (DAE) file in the Collada format [<xref ref-type="bibr" rid="scirp.71860-ref10">10</xref>] to be referred to by its file name. Its example is the light blue block in <xref ref-type="fig" rid="fig3">Figure 3</xref>.</p><p>A character definition in the orange block of <xref ref-type="fig" rid="fig3">Figure 3</xref> has a name, a set of state- transition diagrams as in the yellow block of <xref ref-type="fig" rid="fig3">Figure 3</xref>. A bottom-level character has its appearance specified by a DAE file name in the light blue block in <xref ref-type="fig" rid="fig3">Figure 3</xref>. An upper-level character has its appearance specified by a list of lower-level character names and their relative initial positions in the blue block of <xref ref-type="fig" rid="fig3">Figure 3</xref>. <xref ref-type="fig" rid="fig4">Figure 4</xref> is an expanded form of the yellow block in <xref ref-type="fig" rid="fig3">Figure 3</xref>. Diagram 1 is the expression of the state-transition diagram in <xref ref-type="fig" rid="fig1">Figure 1</xref> that specifies horizontal rotation of the character according to the left and right arrow keys. Diagram 2 is the one for moving forward or backward according to the up and down arrow keys. A state-transition diagram in the yellow block has the orange block where names of states are listed together with the actions to be taken in the state. In the green block, transitions are listed each of which is a triple of the condition, the source and destination states.</p><p>An upper-level character has its appearance specified in the blue block of composing definition in <xref ref-type="fig" rid="fig3">Figure 3</xref>. There the lower-level characters are listed with their initial relative positions to form the upper-level character and also with their initial states.</p><fig id="fig3"  position="float"><label><xref ref-type="fig" rid="fig3">Figure 3</xref></label><caption><title> Example of Animation Definition by Islay 3D</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-9302304x4.png"/></fig><p>A group comprises pairs of a character name and its initial state. By the “fork” action, we can create their instances at the same time in the specified initial states. There is at least one group named main group, which is the set of characters to start up the animation as in the part of group definition in <xref ref-type="fig" rid="fig3">Figure 3</xref>.</p><p>The space where characters play inside is defined with its dimensions, type, background color, and the transition time interval as the part of the world definition in <xref ref-type="fig" rid="fig3">Figure 3</xref>. The type can be chosen out of a space having no boundaries, a ground with a</p><fig id="fig4"  position="float"><label><xref ref-type="fig" rid="fig4">Figure 4</xref></label><caption><title> Internal expression of state-transition diagrams</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-9302304x5.png"/></fig><p>boundary on the floor, and a room that has six surrounding boundaries.</p></sec></sec><sec id="s3"><title>3. Execution Model in ActionScript 3</title><p>The animation definition should be converted by a translator into an ActionScript3 (AS3) code for its implementation as a Flash animation. Compiling the animation definition in AS3, we will get Flash 3D animation that works the same as the original Islay 3D animation. In that way, we can play Islay 3D animation on the Flash platform.</p><sec id="s3_1"><title>3.1. Implementation of State-Transition Diagrams</title><p>In a translation into AS3 code, actions and state transitions take place in the following steps.</p><p>1. A class for mediating the whole animation watches the timer until the next timing for actions and state transitions.</p><p>2. The mediator class calls the function for taking action and shifting states implemented in each of the top-level characters. The function call is accompanied by events conditioning the state transition.</p><p>3. Each character takes actions and shifts states on events.</p><p>4. If the character retains its children (lower-level characters), it calls the function of its children for taking action and shifting states with the events.</p><p>5. Repeat 3 and 4 until all the bottom-level characters take actions and shift states.</p><p>In that way, all the characters keep taking their actions shifting their states by a regular interval.</p></sec><sec id="s3_2"><title>3.2. Implementing Hierarchal Structure of Characters</title><p>In order to implement the hierarchical structure as illustrated in <xref ref-type="fig" rid="fig2">Figure 2</xref>, we introduce a class named Performer. One instance of this class encapsulates that of any character. As indicated in the top line of <xref ref-type="fig" rid="fig5">Figure 5</xref>, this class inherits the DisplayObject3D class of the Papervision3D library that is the fundamental class for any kinds of 3D objects. Among the properties of the DisplayObject3D class, the Performer class especially utilizes the following: Multiple instances of the DisplayObject3D class can be retained in an instance of the DisplayObject3D class as its children. The children instances behave relative to the local coordinate system of their parent instance to constitute the appearance of the parent. The DisplayObject3D retains all the parameters for three-dimensional manipulation of objects such as vertex coordinates, local and global coordinate systems, and the rotation angles. It has also the function for transforming pose and position of 3D objects by manipulating those parameters.</p><p>In the light blue ovals, the Performer class retains a reference to an instance of the class for an atom 3D object in the case of bottom-level character or to a list of instances of the Performer class in the case the character is made up of lower-level characters. In that way, the hierarchical structure of the characters can naturally be implemented. It is even capable of communicating with the children, which provides a natural means to control the children.</p><fig id="fig5"  position="float"><label><xref ref-type="fig" rid="fig5">Figure 5</xref></label><caption><title> Hierarchical structure of characters by means of the Performer class</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-9302304x6.png"/></fig><p>The character represented by the yellow box in <xref ref-type="fig" rid="fig5">Figure 5</xref> is an instance of the Character class of which detail will be described later. The Character class describes how a character should behave in accordance with the state-transition diagrams. Encapsulated in the Performer class, this class implements functions for state transitions and geometrically manipulating the Performer class instance as a 3D object.</p></sec><sec id="s3_3"><title>3.3. Implementing Actions and State Transitions on Events</title><p>In order to cause actions and state transitions according to events, we introduce a class named Mediator that is marked in pink in <xref ref-type="fig" rid="fig5">Figure 5</xref>. It uses the ObjetCollision and WallCollision classes as schematized in <xref ref-type="fig" rid="fig6">Figure 6</xref> for detecting collisions.</p><p>The mediator class controls the progress of whole animation by watching the timer and calling the function for taking actions implemented in the top level character by a constant time interval. When calling the function, events such as key press, messages, and collisions are sent to the function, which recursively calls that of the lower-level characters as indicated by the light blue arrows in <xref ref-type="fig" rid="fig5">Figure 5</xref>.</p></sec><sec id="s3_4"><title>3.4. Conversion of Data Structure of Animation</title><p>We describe how to convert the Islay 3D animation definition in <xref ref-type="fig" rid="fig3">Figure 3</xref> into the form of object class definitions in AS3.</p><p>In order to implement the atom 3D object definition such as the one in the light blue block of <xref ref-type="fig" rid="fig3">Figure 3</xref>, we introduce the Object class. This Object class inherits from the Objects class of the Papervision3D library its functions such as creating an instance of an atom 3D object and creating an instance of bounding box object for collision detection.</p><p>In <xref ref-type="fig" rid="fig7">Figure 7</xref>, the BoundingVolume class retains data fields of the oriented bounding box for collision detection. The ExtendedDAE class creates an atom 3D object as an instance of itself. An atom 3D object being a DAE file is parsed by the ExtendedDAE class extending the DAE class of Papervision3D to create an instance of the atom 3D object and embed it to be available in the animation.</p><p>In order to implement the character definition including actions and state transitions, we introduce the Character class that inherits the Characters class as illustrated in <xref ref-type="fig" rid="fig8">Figure 8</xref>.</p><p>The Characters class includes common functions for applying actions to the per-</p><fig id="fig6"  position="float"><label><xref ref-type="fig" rid="fig6">Figure 6</xref></label><caption><title> Mediator class</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-9302304x7.png"/></fig><fig id="fig7"  position="float"><label><xref ref-type="fig" rid="fig7">Figure 7</xref></label><caption><title> Object Class</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-9302304x8.png"/></fig><fig id="fig8"  position="float"><label><xref ref-type="fig" rid="fig8">Figure 8</xref></label><caption><title> Character class</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-9302304x9.png"/></fig><p>former class and a function to remember the current state. Inheriting the Characters class, the Character class implements the state transition diagrams in the form illustrated in <xref ref-type="fig" rid="fig9">Figure 9</xref> for the example character definition in <xref ref-type="fig" rid="fig4">Figure 4</xref>. As in the red block of <xref ref-type="fig" rid="fig8">Figure 8</xref>, each state is represented by a function that applies actions in the state to the 3D object which is appearance of the Performer class, and returns the name of the next state at the parts underlined in blue. In the green block, the destination state is determined as the return value according to the transition conditions. If no conditions match, the state remains the same (for the null return value).</p><p>The Character class retains the name of its appearance by which the Performer class</p><fig id="fig9"  position="float"><label><xref ref-type="fig" rid="fig9">Figure 9</xref></label><caption><title> Function representing state and transitions in the Character class</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-9302304x10.png"/></fig><p>gets an instance of the PartsFactory class (described later). The Performer class, called by the Mediator class by a regular time interval, calls the function representing the current state of the encapsulated Character class to apply the actions to its appearance. The return value of the function updates the current state if not null.</p><p>The PartsFactory class creates instances of the Object class in accordance with the atom 3D object definition and also composes the appearances of upper-level characters in accordance with the composing definition such as in <xref ref-type="fig" rid="fig3">Figure 3</xref>.</p><p>When the instance of the Performer class is created, 3D object name for specifying its appearance is passed to this class. Example atom 3D object names are listed in the light blue block in <xref ref-type="fig" rid="fig3">Figure 3</xref>. In the blue block of composing definition in <xref ref-type="fig" rid="fig3">Figure 3</xref>, the lower-level characters are registered with their relative positions to compose the upper-level character and also with their initial states.</p><p>The PartsFactory class creates (3D) Object instances, sets their initial positions, and returns these to the Performer class instance as illustrated in <xref ref-type="fig" rid="fig1">Figure 1</xref>0. In the case that the Performer class instance represents a bottom-level character, this class returns an Object class instance. In the case that the Performer class instance represents an upper-level character, this class returns a set of Performer class instances.</p><p>The groups class retains pairs of a character and its initial state and creates instances of the Performer class retaining those characters when the they are forked. The group of characters in <xref ref-type="fig" rid="fig1">Figure 1</xref>1 is the initial performers in this example animation.</p><p>The Main class sets a space where characters play inside in accordance with the world definition such as in <xref ref-type="fig" rid="fig3">Figure 3</xref>. As illustrated in <xref ref-type="fig" rid="fig1">Figure 1</xref>2, the Main class inherits from the IslayBasicView class its auxiliary functions for displaying walls and catching user events such as key input and mouse click. The IslayViewport3D class displays the walls. The IslayInteractiveSceneManager class makes it possible to catch the mouse event.</p><fig id="fig10"  position="float"><label><xref ref-type="fig" rid="fig1">Figure 1</xref>0</label><caption><title> PartsFactoy class</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-9302304x11.png"/></fig><fig id="fig11"  position="float"><label><xref ref-type="fig" rid="fig1">Figure 1</xref>1</label><caption><title> Groups class</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-9302304x12.png"/></fig><fig id="fig12"  position="float"><label><xref ref-type="fig" rid="fig1">Figure 1</xref>2</label><caption><title> Main class</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-9302304x13.png"/></fig></sec></sec><sec id="s4"><title>4. Performance Evaluation</title><p>The developed translator converts an Islay 3D animation into ActionScript3, which is then compiled by the Flash compiler to yield SWF (small web format) file playable on the Flash platform.</p><p><xref ref-type="fig" rid="fig1">Figure 1</xref>3 shows screenshots of an example 3D animation running as a Flash content. The ball-like character walks around in the space according to the arrow key input and throws a hummer at the flying saucers when the space bar is pressed.</p><p><xref ref-type="table" rid="table1">Table 1</xref> shows the memory and CPU usages of the animation when played as a Flash content or as the original animation definition interpreted by the old built-in interpreter of Islay 3D written in JavaScript on the same PC of the specifications listed in <xref ref-type="table" rid="table2">Table 2</xref>. <xref ref-type="table" rid="table1">Table 1</xref> indicates that the Flash content produced by the developed translator consumes only a quarter of the memory and a half of the CPU power consumed by the old interpreter on JavaScript.</p></sec><sec id="s5"><title>5. Conclusion</title><p>We have developed a translator of Islay 3D animations into ActionScript3 for the</p><fig-group id="fig13"><label><xref ref-type="fig" rid="fig1">Figure 1</xref>3</label><caption><title> Screenshots of Flash animation.</title></caption><fig id ="fig13_1"><label>(b)</label><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-9302304x14.png"/></fig><fig id ="fig13_2"><label></label><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-9302304x15.png"/></fig></fig-group><table-wrap id="table1" ><label><xref ref-type="table" rid="table1">Table 1</xref></label><caption><title> Performance comparison in terms of memory and CPU usages</title></caption><table><tbody><thead><tr><th align="center" valign="middle" >Browser</th><th align="center" valign="middle"  colspan="2"  >Firefox 48</th><th align="center" valign="middle"  colspan="2"  >Internet Explorer 11</th></tr></thead><tr><td align="center" valign="middle" >Content</td><td align="center" valign="middle" >Flash</td><td align="center" valign="middle" >JavaScript</td><td align="center" valign="middle" >Flash</td><td align="center" valign="middle" >JavaScript</td></tr><tr><td align="center" valign="middle" >Memory usage</td><td align="center" valign="middle" >105 - 120 MB</td><td align="center" valign="middle" >600 - 630 MB</td><td align="center" valign="middle" >130 - 145 MB</td><td align="center" valign="middle" >680 - 720 MB</td></tr><tr><td align="center" valign="middle" >CPU usage</td><td align="center" valign="middle" >16% - 18%</td><td align="center" valign="middle" >39% - 42%</td><td align="center" valign="middle" >17% - 18%</td><td align="center" valign="middle" >48% - 53%</td></tr></tbody></table></table-wrap><table-wrap id="table2" ><label><xref ref-type="table" rid="table2">Table 2</xref></label><caption><title> Specifications of the test platform</title></caption><table><tbody><thead><tr><th align="center" valign="middle" >Parts</th><th align="center" valign="middle" >Specifications</th></tr></thead><tr><td align="center" valign="middle" >OS</td><td align="center" valign="middle" >Windows 7 Professional 64 bit</td></tr><tr><td align="center" valign="middle" >CPU</td><td align="center" valign="middle" >Core i7 2600, 3.4 GHz, 4 cores, 8 threads, 8 MB cache</td></tr><tr><td align="center" valign="middle" >Main memory</td><td align="center" valign="middle" >8 GB</td></tr><tr><td align="center" valign="middle" >Graphic card</td><td align="center" valign="middle" >AMD Radeon HD 6350</td></tr><tr><td align="center" valign="middle" >Display</td><td align="center" valign="middle" >Width 1920 &#215; Height 1080 pixels</td></tr></tbody></table></table-wrap><p>purpose of playing the animations on the Flash platform. A comparison of the memory and CPU usages for the same animation played as a Flash content produced by the developed translator or as the original animation definition interpreted by the old interpreter written in JavaScript has shown that the memory and CPU usages are much saved, quartered and halved, respectively. That means that the developed translator helps the smaller computers run the animation created by Islay 3D. On the other hand, for the creation of animations by the Islay 3D editor, we still have to use the larger and faster computers. That is a remaining problem to be solved in the future.</p></sec><sec id="s6"><title>Cite this paper</title><p>Niibori, M., Rokujo, M., Okamoto, S., Kamada, M. and Yonekura, T. (2016) Translator of Islay 3D Animations into Flash Platform. Journal of Software Engineering and Applications, 9, 547-560. http://dx.doi.org/10.4236/jsea.2016.911037</p></sec></body><back><ref-list><title>References</title><ref id="scirp.71860-ref1"><label>1</label><mixed-citation publication-type="other" xlink:type="simple">Adobe Flash Player. http://www.adobe.com/products/flashplayer.html</mixed-citation></ref><ref id="scirp.71860-ref2"><label>2</label><mixed-citation publication-type="other" xlink:type="simple">Papervision3D. https://en.wikipedia.org/wiki/Papervision3D</mixed-citation></ref><ref id="scirp.71860-ref3"><label>3</label><mixed-citation publication-type="other" xlink:type="simple">Adobe Flash. http://www.adobe.com/products/flash.html</mixed-citation></ref><ref id="scirp.71860-ref4"><label>4</label><mixed-citation publication-type="other" xlink:type="simple">Cooper, S., Dann, W. and Paush, R. (2003) Teaching Objects-First in Introductory Computer Science. Proceedings of the 34th SIGCSE Technical Symposium on Computer Science Education, Reno, 19-23 February 2003, 191-195.</mixed-citation></ref><ref id="scirp.71860-ref5"><label>5</label><mixed-citation publication-type="other" xlink:type="simple">Fowler, A., Fristace, T. and MacLauren, M. (2012) Kodu Game Lab: A Programming Environment. The Computer Games Journal, 1, 17-28.</mixed-citation></ref><ref id="scirp.71860-ref6"><label>6</label><mixed-citation publication-type="other" xlink:type="simple">Okamoto, S., Kamada, M. and Nakao, T. (2005) Proposal of an Interactive Animation Authoring Tool based on State Transition Diagram. IPSJ Transactions on Programming, 46, 19-27.</mixed-citation></ref><ref id="scirp.71860-ref7"><label>7</label><mixed-citation publication-type="other" xlink:type="simple">Kwong, D., Niibori, M., Okamoto, S., Kamada, M. and Yonekura, T. (2014) Islay 3D—A Programming Environment for Authoring Interactive 3D Animations in Terms of State-Transition Diagram. Journal of Software Engineering and Applications, 7, 177-186.  
http://dx.doi.org/10.4236/jsea.2014.73019</mixed-citation></ref><ref id="scirp.71860-ref8"><label>8</label><mixed-citation publication-type="other" xlink:type="simple">Nakagawa, M., Okamoto, S., Kamada, M. and Yonekura, T. (2006) Flash Movie Authoring Environment Based on State Diagram. Proceedings of 5th ACM SIGCOMM Workshop on Network and System Support for Games (NetGames 2006), Singapore, Article No. 45. 
http://dx.doi.org/10.1145/1230040.1230055</mixed-citation></ref><ref id="scirp.71860-ref9"><label>9</label><mixed-citation publication-type="other" xlink:type="simple">Niibori, M., Arisawa, Y., Okamoto, S., Kamada, M. and Yonekura, T. (2012) An Authoring Tool for Flash Games in ActionScript3.0. Proceedings of the 15th IEEE International Conference on Network-Based Information Systems (NBiS 2012), Melbourne, 26-28 September 2012, 889-892.</mixed-citation></ref><ref id="scirp.71860-ref10"><label>10</label><mixed-citation publication-type="other" xlink:type="simple">COLLADA—Digital Asset and FX Exchange Schema. https://www.khronos.org/collada/</mixed-citation></ref></ref-list></back></article>