2017-04-27

[Flash] Starling2.1 FlashDevelop5.2

[Flash] Starling2.1の開発環境を構築 FlashDevelop5.2

環境

  • Windows7
  • Adobe AIR SDK 22
  • Starling 2.1
  • FlashDevelop 5.2.0
  • .NET framework 3.5SP1 dotnetfx35.exe
  • JRE (Java Runtime Environment) Jre6u43

[話者] Unityは開発環境がどうも扱いにくいんだよな。Flashは少なくともコーディング開発環境は無料で用意できるので楽なのだ。 http://qiita.com/advent-calendar/2016/flashers で知ったのだがStarling frameworkというのがよさそうだ。Flash開発環境をあらためて構築してみるだろ。

[合いの手] そのページにあるこの記事に触発されたんだね http://qiita.com/harayoki/items/3d7460ca9bd622147100

[話者] 開発環境構築はStarling公式説明(英語) http://manual.starling-framework.org/en/ の通りにすればいい。

まず「IDEを選べ」とある。私は、以前から使ってるFlashDevelop(無料)の最新版5.2.0を使うぞ。

FlashDevelopでのStarling環境構築については Starling公式Wiki http://wiki.starling-framework.org/manual/flashdevelop に詳細がある。

またFlashDevelop自身の環境構築は http://www.flashdevelop.org/community/viewforum.php?f=11 のダウンロードページに掲載がある。FlashDevelop 5.0.0以降は .NET 3.5が必要。また最新版5.2.0でもAIR SDK 22+23までしか対応してないとある。

FlashDevelopは今回Portableアプリとしてインストールするぞ。Portableアプリは複数のバージョンを使い分けるとき便利だ。すでにWindows7にはFlashDevelop4が入っているが、それに影響与えずFlashDevelop5を使えるようにする。

Install FlashDevelop

FlashDevelopを動作させるのに必要な .NET framework 3.5SP1(Microsoft製)をインストール。といってもWindows7なら最初からインストール済み。

FlashDevelop最新版を http://www.flashdevelop.org/community/viewforum.php?f=11 から取得してインストール。zip版を取得して C:\home\bin\FlashDevelop5 以下に展開。本来は以下のAdobeAIR SDKとFlashPlayerはFlashDevelop起動後に[Tools → Install Software] でインストールできるのだが、今回は手作業で準備する。

Install AIR SDK

AdobeAIR SDKを動作させるのに必要な JRE (Java Runtime Environment) をインストール。Java7 (ver1.7)の最新版でよいと思うが、私は以前 Java6 (ver1.6)の u43をインストールしていた。

AdobeAIR SDKを https://helpx.adobe.com/jp/air/kb/archived-air-sdk-version.html から取得して展開。FlashDevelopは最新の 25 に非対応のため、対応している 22 を選んだ。「Adobe AIR 22.0.0.153 SDK & Compiler Windows (222 MB)」はzipファイルだったので C:\home\bin\FlashDevelop5\Apps\air22 以下に展開。

Install Flash Player Debugger

FlashPlayer Projector Debuggerというものを取得して配置。 https://www.adobe.com/support/flashplayer/debug_downloads.html で旧版も取得可能だが200MB越えのzipなので展開も面倒なのでこれは最新の「Download the Flash Player projector content debugger」 flashplayer_25_sa_debug.exe を取得した。これはインストールファイルではなく実行ファイル。C:\home\bin\FlashDevelop5\Apps\flashsa にこのファイルを配置。

Setting FlashDevelop

FlashDevelopを起動して[Tools→Program Setting]で設定。

  • [AS3Content - Language - Installed Flex SDKs] でC:\home\bin\FlashDevelop5\Apps\air22フォルダーを指定。
  • [FlashViewer - External Player Path] に C:\home\bin\FlashDevelop5\Apps\flashsa\flashplayer_25_sa_debug.exe を指定。

これで構築完了。

Build SampleApp

次にStarlingのサンプルプログラムをbuildしてみる。

FlashDevelopで [Project → New Project → AS3 Project] を選択。どのフォルダーに保存するか入力して[]。今回は R:\20170501hello1がProject Folderだ。

Starling frameworkを http://gamua.com/starling/download/ から取得。

starling-2.1.zipを展開して、starling.swc を取り出し、R:\20170501test1\lib\starling.swc を配置。

FlashDevelopで [Project → Properties → Compiler Options → SWC Libraries] に lib/starling.swc と入力。

実は lib/starling.swc を右クリックして[Add To Library] を選べば、[Project → Properties → Compiler Options → SWC Libraries] に lib/starling.swc と自動で入力してくれる。

[Project → Properties → Output → Platform]の FlashPlayer versionを今回導入したAIR SDKのバージョン 22.0 に合わせる。

[Project → Properties → Compiler Options → Additional Compiler Options] に -swf-version=33 と指定。http://wiki.starling-framework.org/manual/flashdevelop によると FlashPlayer/AIR ver22 のswf versionは33。

FlashDevelopで以下を作成。

Main.as

package
{
    import flash.display.Sprite;
    import starling.core.Starling;
    
    /**
     * ...
     * @author foo
     */
    [SWF(width="400",height="300",frameRate="60",backgroundColor="#808080")]
    public class Main extends Sprite 
    {
        private var _st:Starling;
        public function Main() 
        {
            _st = new Starling(Game, stage);
            _st.start();
        }
    }
}

Game.as

package 
{
    import starling.display.Quad;
    import starling.display.Sprite;
    import starling.utils.Color;
    
    /**
     * ...
     * @author foo
     */
    public class Game extends Sprite
    {
        public function Game()
        {
            var qd:Quad = new Quad(200, 200, Color.RED);
            qd.x = 100;
            qd.y = 50;
            addChild(qd);
        }
    }
    
}

FlashDevelopで [Project - Test Project] する。ショートカットキーに掲載がないがFlashProCS6と同じくCtrl+Return押下でいい。 正常ビルドを確認。

[合いの手] 以前はFlex SDKというのをインストールしていたけど、入れなくていいのか?

[話者] AIR SDKのコンパイラー付きを使うなら、Flex SDKは要らないぞ。

unable to open playerglobal.swc というコンパイルエラーのときの修正箇所

unable to open playerglobal.swc というコンパイルエラーが出たときは

frameworks\flex-config.xml を以下に書き換える。これでエラーなし。

+++ C:/home/bin/FlashDevelop5/Apps/air22/frameworks/flex-config.xml.orig    Fri May 27 12:50:24 2016
--- C:/home/bin/FlashDevelop5/Apps/air22/frameworks/flex-config.xml Thu Apr 27 23:22:46 2017
@@ -45,3 +45,3 @@
         <external-library-path>
-            <path-element>libs/player/{targetPlayerMajorVersion}.{targetPlayerMinorVersion}/playerglobal.swc</path-element>
+            <path-element>libs/player/22.0/playerglobal.swc</path-element>
         </external-library-path>

Install those on VirtualMachine WindowsXP

仮想OSのWindowsXPにもFlashDevelop5.2.0を同じように入れてみた。

  1. FlashDevelopを動作させるのに必要な .NET framework 3.5SP1 を http://www.atmarkit.co.jp/ait/articles/1211/16/news093_2.html のリンクから取得してインストール。日本語packは入れた方がいいがここでは面倒なので入れてない。仮想XPはネットワークにつなげていないと十数分待たされたがインストールOK。
  2. AdobeAIR SDKを動作させるのに必要な JRE (Java Runtime Environment) を入れる。Java7 (ver1.7)の最新版でよいと思うが、私は以前取得していた Java6 (ver1.6)の u43というのをインストール。 http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase6-419409.html
  3. FlashDevelop最新版を http://www.flashdevelop.org/community/viewforum.php?f=11 から取得してインストール。本来は以下のAdobeAIR SDKとFlashPlayerはFlashDevelop起動後に[Tools → Install Software] でインストールできるのだが、仮想XPはネットワークつないでないので、手動で取得する。
  4. AdobeAIR SDKを https://helpx.adobe.com/jp/air/kb/archived-air-sdk-version.html から取得して展開。FlashDevelopは最新の 25 に非対応のため、対応している 22 を選んだ。「Adobe AIR 22.0.0.153 SDK & Compiler Windows (222 MB)」はzipファイルだったので適当なフォルダーに展開。
  5. FlashPlayer Projector Debuggerというものを取得して配置。 https://www.adobe.com/support/flashplayer/debug_downloads.html で旧版も取得可能だが200MB越えのzipなので展開も面倒なのでこれは最新の「Download the Flash Player projector content debugger」 flashplayer_25_sa_debug.exe を取得した。これはインストールファイルではなく実行ファイル。適当なフォルダーにこのファイルを配置。
  6. FlashDevelopを起動して設定。
  7. Starling frameworkを取得してビルド。

しかし仮想XPだとウィンドウ内表示がおかしい。

同じswfファイルを同じFlashViewerで見ると、実在Win7なら正常表示。buildは正常にできているが、表示がおかしいということだな。 StarlingはGPUで表示するのだが、この仮想XPを動作させている仮想OSソフト VMwarePlayer3.1.6(2012-06) はGPU表示に非対応らしい。

GPU表示ではなくCPUレンダリングにすると表示される。遅くなるけどな。

--- Main.as.1   2017-04-25 13:52:00.150639500 +0900
+++ Main.as     2017-04-27 21:04:40.103817100 +0900
@@ -15,3 +15,3 @@
                {
-                       _starling = new Starling(Game, stage);
+                       _starling = new Starling(Game, stage, null, null, "software");
                        _starling.start();

[合いの手] 無料ソフトだけで、ネットワーク非接続の仮想OSの中でビルドできるとは、確かにUnityより開発環境は自由かもね。

0 件のコメント:

コメントを投稿

人気記事