ActionScript3.0を書いて、swf形式の Flashゲームをつくるためには、 色々とインストールしなければならないものがある。 以下、今回僕がインストールしたもの。全て無料で手に入る。 フリーの環境で swf が生成できる時代だ。凄いな。 統合開発環境の FlashDevelop なんか、フリーなのにとてもよい出来。
■ JDK6、JRE1.6
■ Flex3 SDK
■ .NET Framework2.0
■ FlashDevelop 3.0 Beta7
FlashDevelopは、2.0 まではデフォルトで日本語が表示されなかったらしいけど、 3.0 は大丈夫。エディタの色やフォントを変えるには、xml を書き換えるのだが、 2.0 と違って設定ファイルはユーザごとに作られるようなので、 インストールフォルダのファイル(初期起動用のテンプレート)を書き換えても意味がない。 (アンインストールしてもユーザの設定ファイルは残るようだ。)
Flex3 を英語で動作するようにしないと、FlashDevelop でうまくビルドができなくなったりするそうだ。 Flex3 のインストールフォルダの bin/jvm.config の31行目くらいにある設定に、以下を付加する。
java.args=-Xmx384m -Dsun.io.useCanonCaches=false
↓
java.args=-Xmx384m -Dsun.io.useCanonCaches=false -Duser.language=en
ちなみに、僕の好みの色設定(暫定)。やっぱりエディタは黒背景に限る。
ScintillaNET.xml の一部
<globals> <value name="default-fore">0xbbbbbb</value> <value name="default-back">0x000000</value> <value name="default-font">Courier New</value> <value name="default-font-size">9</value> <value name="default-selection-fore">0xffffff</value> <value name="default-selection-back">0x2222cc</value> <value name="default-caretline-back">0x444444</value> <value name="default-caret-fore">0xbbbbbb</value> </globals> <style-classes> <style-class name="default" fore="default-fore" back="default-back" size="default-font-size" font="default-font" /> <style-class name="gdefault" fore="default-fore" back="default-back" size="default-font-size" font="default-font" /> <style-class name="bracebad" fore="default-fore" back="default-back" size="default-font-size" font="default-font" bold="true" /> <style-class name="bracelight" fore="0xffffff" back="0x115511" size="default-font-size" font="default-font" bold="true" /> <style-class name="controlchar" fore="0xffffff" back="default-back" size="default-font-size" font="default-font" /> <style-class name="indentguide" fore="0x777777" back="default-back" size="default-font-size" font="default-font" /> <style-class name="linenumber" fore="0xcccc99" back="default-back" size="default-font-size" font="default-font" /> <style-class name="lastpredefined" fore="default-fore" back="default-back" size="default-font-size" font="default-font" /> </style-classes>
AS3.xml の一部
<use-styles> <style name="default" inherit-style="default" /> <style name="comment" fore="0x33bb33" /> <style name="commentline" fore="0x33bb33" /> <style name="commentdoc" fore="0x33bb33" /> <style name="number" fore="0xcccc60" /> <style name="word" fore="0xdd9999" /> <style name="string" fore="0x77aacc" /> <style name="character" fore="0x77aacc" /> <style name="uuid" /> <style name="preprocessor" fore="0xcc8080" /> <style name="operator" /> <style name="identifier" /> <style name="stringeol" /> <style name="verbatim" /> <style name="regex" fore="0xff00ff" /> <style name="commentlinedoc" fore="0x33bb33" /> <style name="word2" fore="0xccaa77" /> <style name="commentdockeyword" fore="0x800000" /> <style name="commentdockeyworderror" fore="0xff0000" /> <style name="globalclass" fore="0xdd9999" /> <style name="gdefault" inherit-style="gdefault" /> <style name="linenumber" inherit-style="linenumber" /> <style name="bracelight" inherit-style="bracelight" /> <style name="bracebad" inherit-style="bracebad" /> <style name="controlchar" inherit-style="controlchar" /> <style name="indentguide" inherit-style="indentguide" /> <style name="lastpredefined" inherit-style="lastpredefined" /> </use-styles>
普通に Flex を入れただけで、コマンドラインで
C:/flex_sdk_3/bin/mxmlc.exe ソースファイル名.as
とかやればコンパイルできるもんだと思ってたけど、 (というかできるらしいんだけど、)僕の環境では
Exception in thread "main" java.io.FileNotFoundException: C:\flex_sdk_3\bin\mxmlc.jar
(指定されたファイルが見つかりません。)
at java.util.zip.ZipFile.open(Native Method)
at java.util.zip.ZipFile.
at java.util.jar.JarFile.
at java.util.jar.JarFile.
なんていうエラーが出てしまった。mxmlc.jar があるのは bin じゃなくて lib じゃないのか? でも FlashDevelop の方からだとちゃんとビルドできた。 FlashDevelop の Output を見た感じだと、クラスパスとか指定しなきゃいけない感じ? まあとりあえず統合環境の方でビルドできるんだからいいや。
FlashDevelop はサイズも軽いし動作も軽快だしインデントガイドも見やすいので言うことなし。 ソースと同じ階層に「ソース名-config.xml」という名前の設定ファイルを置いておけば、 FlashDevelop での設定より優先してコンパイル時に反映してくれるようだ。
Hello World なソースと xml の設定の例は、こんな感じ。
HelloWorld.as
package
{
import flash.display.Sprite;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
public class HelloWorld extends flash.display.Sprite
{
public function HelloWorld():void
{
var textField:TextField = new TextField();
textField.text = "こんにちは世界!";
textField.autoSize = TextFieldAutoSize.LEFT;
addChild( textField );
}
}
}
HelloWorld-config.xml
<flex-config> <use-network>false</use-network> <default-size> <width>640</width> <height>480</height> </default-size> <default-background-color>0x000000</default-background-color> <default-frame-rate>24</default-frame-rate> <default-script-limits> <max-recursion-depth>65535</max-recursion-depth> <max-execution-time>4</max-execution-time> </default-script-limits> <compiler> <incremental>true</incremental> <warn-duplicate-variable-def>false</warn-duplicate-variable-def> </compiler> <metadata> <title>タイトル</title> <description></description> <publisher>Tatsuya Koyama</publisher> <creator>Tatsuya Koyama</creator> <language>JP</language> </metadata> <benchmark>true</benchmark> </flex-config>
以上。