もうすぐ2020年も終わりですね
僕のブログは時たま時空が歪むのでまだ東京五輪は始まっていないなどという無粋なツッコミをしてはいけない。
ところで、Webの世界にはFlash及びActionScriptなんてものがあります。これらは既に時代を終えてしまった過去の遺物なわけですが、僕自身もそれに同じく過去の遺物なので仲間意識とか感じちゃうんですよ……。
準備編
そうしたわけで何を血迷ったかFlash開発をしていきます。ちなみにアニメ制作の世界とかですとFlashってバリバリ現役です。ネットにつなぐ際の脆弱性とスマートデバイスとの相性の悪さが指摘されているだけで、Flash自体はアニメーションを描くには勝手の悪いツールではなかったわけです。だけど、今回使うソフトはアニメとは無関係ながりがりとコードを書いていくタイプのソフトを使っていきます。アニメ制作特化のやつは有償だから仕方ないね。
ツールはこれを使っていきます。
FlashDevelop.org - Welcome
起動するとこんな感じです
① コードを書く部分
② プロジェクトのいろいろ置いてあるところ
③ 実行結果
といった感じの普通のIDEです。①~③までの各部分に名前があるんだろうけど僕は覚えていないです。なので、僕がIDE使うときはここは「コード書くところ」といった感じに頭悪そうな呼び方で各パーツを呼びます。使えればいいからね……仕方ないね。
あと、Flash作るのにコンパイラ的な奴を要求されたりするので、こちらも必要になるっぽいです
Download Adobe Flex SDK
そして、おもむろに[Tools]→[ProgramSettings]を開きます。
赤枠の箇所にダウンロードしてきたやつをねじ込むと良いらしいですよ。
やってみた
まずは新規のAS3プロジェクトを立ち上げます。
package { import flash.display.Sprite; import flash.events.Event; /** * ... * @author Sample */ public class Main extends Sprite { public function Main() { if (stage) init(); else addEventListener(Event.ADDED_TO_STAGE, init); } private function init(e:Event = null):void { removeEventListener(Event.ADDED_TO_STAGE, init); // entry point } } }
するとこんな感じのごついのが生成されます。
とりあえず動かしたい場合は、何も考えずMainの中にごりごりとコードを書いていけば動くのでいったんはその方針で開発を進めていこうと思います。そういえば最近までinitってinitialize(初期化)の略語だったこと知りませんでしたよ。
さてさて自動生成だけ見て、うだうだ言っても面白くないので文字だけでも表示させてみましょうかね。
package { import flash.display.Sprite; import flash.display.Bitmap; import flash.events.Event; /** * ... * @author Sample */ public class Main extends Sprite { [Embed(source = './As_logo.png')] private var imgLogo:Class; public function Main() { if (stage) init(); else addEventListener(Event.ADDED_TO_STAGE, init); var img_01:Bitmap = new imgLogo(); img_01.width = 400; img_01.height = 400; img_01.x = stage.stageWidth/2 - 100; img_01.x = stage.stageHeight/2 - 100; addChild(img_01); } private function init(e:Event = null):void { removeEventListener(Event.ADDED_TO_STAGE, init); // entry point } } }
そして、適当な画像(As_logo.png)を用意してこれで実行すると次のような画面ができます。
はい、フラッシュできました。
個人的にスクリプトごりごりのフラッシュを今後どうやって活かしていけばいいのかよくわかりませんが、デスクトップアプリに使うにはいいんじゃないでしょうか。
続く……?