Flex3使ってみました

「Flex3でゲームプログラム入門」という記事を読んで、Flex3SDKをダウンロードして使ってみました。Flash系はまったく初めてです。


手習いに、カンタンなアプリを作ってみました。五十音のひらがなを、すべてボタンにして表示します。ボタンを押すと、そのひらがなの音が再生されます。(音声データは、落っこちてるのを見つけられなかったので、ミッキーのマイクで自分の声を録音しました。)


使ってみた感想

  • ミニゲームくらいなら、と〜ってもカンタンに作れるんでウレシイ
  • mxmlでUI構築するのは、便利でウレシイ
    • Builder使ったら、もっとウレシそう
    • でも、Repeaterみたいなコントロールが少ないんで、動的になんかやろうとすると、すぐムリがきそう。
    • かといって、ActionScriptで同じことやるにはどうしたらいいのかよく分かんない。mxmlから生成するコードを見せてくれればよいのに。
  • RIAなところは、まぁそのうち。


以下、ソースコードです。


最初は、全部、mxmlかActionScriptでやろうと思ったのですが、どちらもよく分からなかったので、結局pythonでmxmlのコードを出力してます。

# -*- coding: utf-8 -*-

#----------------------------------------------------------
# アプリケーションの開始
#----------------------------------------------------------
print """<?xml version="1.0"?>
<!-- aiueo.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
"""
#----------------------------------------------------------
# 音声ファイルの埋込み
#----------------------------------------------------------
hiragana =  u"あいうえおかきくけこさしすせそ"
hiragana += u"たちつてとなにぬねのはひふへほ"
hiragana += u"まみむめもや−ゆ−よらりるれろ"
hiragana += u"わ−−−をん"

embedTmpl = u'  <mx:SoundEffect id="%s" source="@Embed(source=\'%s.mp3\')"/>'

for c in hiragana:
  if c <> u"−":
    print embedTmpl % (c, c)

#----------------------------------------------------------
# UIComponentの開始
#----------------------------------------------------------
print """
    <mx:Label text="Hello あいうえお!" fontWeight="bold" fontSize="24"/>
      <mx:Panel layout = "absolute">
"""

#----------------------------------------------------------
# ボタンの生成
#----------------------------------------------------------
btnTmpl = u"""
        <mx:Button x=\"%d\" y=\"%d\" height=\"%d\" width=\"%d\" 
                   fontWeight=\"bold\" fontSize=\"24\"
                   label=\"%s\" mouseDownEffect= \"%s\" />"""

n = 0; w = 50; h = 50
for c in hiragana:
  x = w * (9 - n / 5)
  y = h * (n % 5)
  if c <> u"−":
    print btnTmpl % (x,y,h,w,c,c)
  n += 1

#----------------------------------------------------------
print """
    </mx:Panel>
</mx:Application>
"""

このバッチファイルで、aiueo.pyの出力をファイルにリダイレクトしてコンパイルし、音声ファイルと一緒にswfファイルにまとめます。

aiueo.py > aiueo.mxml
c:\Flex3SDK\bin\mxmlc -default-size 600 400 -default-frame-rate=30 -default-background-color=0xFFFFFF  --show-actionscript-warnings=true --strict=true aiueo.mxml
if errorlevel 1 pause