お飾りのFlashとプログラミング言語としてのAS

Flash

1. ホームページの装飾に使う
2. アニメーションや動画などのプラットフォームに使う
3. ちょっとしたゲームに使う

デザイン側で基本スキルと化し、フラッシュはフォトショップイラストレーターぐらいのスキルとなってきた。さらにはホームページ制作単価が値崩れしたことにより、Flash界隈の単価はバカ下がりらしい。
イラストや写真がそうであるように、コンテンツそのものに一定以上の価値が認められればそこで商売することは継続可能だろうが、単純加工業としては成立しなくなりそうだ。
印刷業界がそうなったように単価はまだ下がりそう。
使えるぐらいではもうお金が取れないということだろう。

ActionScript

Flashにもプログラミングが必要な部分もある。
簡単に言うとActionScript部分。
これらはJavaScriptみたいに比較的とっつきやすいが、恐らくはまだプログラミングサイドでスキルを身につけ人しか使いこなせない領域だろう。
ただ、やれることが典型化しているので単価が下がる事に足して対抗できるほどの力はないと思う。

AirFlex

上記に収まらないさらにプログラミングな部分として、AIRFlexに代表されるガチガチのコーディングサイドも紹介しておかないとならない。
ここまでくると普通の開発系言語と大差ない。
Flexはぶっちゃけ利用者側からは区別ができない(swfとかで吐き出す)ので、Airで紹介する。
インストールから特殊なのですぐわかるのだが、こんなのもがAirかと思うことがままある。

TweetDeck

Twitterクライアント
http://www.tweetdeck.com/

これは凄い。
まだ設定が十分にできないところもあるけど、Airができることをよくあらわしていると思う。

はがきデザインキット2010|郵便年賀.jp

http://www.yubin-nenga.jp/design_kit/
日本郵便の年賀状デザインソフトなんだけど、凄い便利。
恐ろしいレベルの完成度で、中の人達が半端ない優秀さがにじみ出てる。
マネジメントからコーディング双方で凄いアプリっていうのはなかなかない。
使ったことが無い人は使ってみることをお勧めする。
もっとも次回に使えるのは来年末かもしれないが…。

スクリーンショットの1枚ぐらい張ろうかと思ったんだけど、公式に1枚も写真がねぇ残念な感じなのでツアーURLでも貼っておきます。
http://www.yubin-nenga.jp/tour/
ホームページが全部フラとか、なんか技術は1歩先いってるのだけど、先行きすぎてむしろ古く感じるぐらいですね!
ここまで電子化できてるなら後はメールでいいじゃんとか思ったりもするけど・・・ヽ( ´ー`)ノ
それは言わない約束。


ActionScriptで何ができるか?

MSDNな人は、ActiveXとか、Component DLLを想像するといいかもしれない。
上であげたようなアプリケーションをActionScriptで組みあげるには、技術要件で言えばWinAPIだけでゴリゴリアプリケーションを書けるレベル、もしくはそれ以上の技能が必要になると思う。
windowsのクライアントアプリを作るのに今までVisualStudio以外の選択肢はほぼなかったのだが、その選択肢のひとつとしてAirなどが入ってくるのではないかと思う。マルチOSで動くのもいいことだよね。
Javaは大規模開発に向いてるとおもうけど、こっちはユーティリティ、アプリケーション開発に向いている。

一昨年にFlexGUI操作可能な印刷帳票系の何かを組み上げたことがあった。ゴリゴリ書く必要があったが、コンポーネントなどのライブラリ化が進めばここらへんの技術要件も下がるんじゃないかと思う。
これが一昔前だったらなんちゃらレポートとかを使わなければいけなかったのだろうが、クライアント+サーバー以外で実現可能な形態を考えるとかなり有効な選択肢だ。
とは言え、不満点も多い。俺の不満は爆発しそうだ。
もしでかいプロジェクトでやってたのなら死ねる。
そういう意味で、郵便事業会社のアプリを完成させたチームには畏敬の念を抱く。
これをAirで完成させたか!みたいな。
どこが作ったの?

経路探索のフラッシュ

こういうのをグラフィカルを持たせて書こうとした場合どんな言語があるだろうか?
ネットでみんなに見せたいとなった場合なにがあるだろうか。
JavaでSwingとか?HTML5
あと、なにがあるだろう・・・。
ASプログラミングはそのいくつかある選択肢の一つでしかないかもしれないけども、まあ、言語としては手ごろなのではないかとおもう。



経路探索アルゴリズムの「ダイクストラ法」と「A*」をビジュアライズしてみた
http://d.hatena.ne.jp/nitoyon/20100126/dijkstra_aster_visualize



やってることは違うのだけど、自分も画面的に似ているものを以前書いた。
最短経路と粘菌とプログラム
http://d.hatena.ne.jp/kuippa/20100113/1263396852
途中で行き詰ってほおりなげてるところが俺レベル…。
ASはお作法から、わからないことだらけなんだけど、老舗のにとよんさんの書き方はさすがに参考になる。
Flash界隈(特にプログラミング寄り)、もっといろんな人のソースが見たいとおもった。


個人的にこんな書き方できるんだなとおもったもの。

ColorHSV
色相(Hue) 彩度(Saturation) 明度(Value・Brightness) で色を定義するクラスです.
http://www.libspark.org/htdocs/as3/frocessing/frocessing/color/ColorHSV.html
frocessing?
描画系ライブラリなのね。。

isStart:Boolean = (c == "S");
('A`)!

    private var MAZE:String =  
<>************************** 
**************************</>; 

オンコードで、改行を含んだ文字列の定義のしかたがわからなかった…。こうかくのか…。
どうぐぐっていいかもわからなかったので助かりんぐ。


矢印とかwww 線で書くんだ。なるほど。↑とか書くと他言語の人は見れないのかな。

import flash.display.Sprite;
import flash.text.TextField;
import mx.core.UIComponent;
//import frocessing.color.ColorHSV;
public static const SIZE:Number = 36;   // 描画時の1ブロックサイズ

private function drow_arrow():void
{
	var cvsUI:UIComponent = new UIComponent();
	var obj:Sprite = new Sprite();
	with (obj){
		graphics.lineStyle(0, 0x000000); 
		graphics.moveTo(SIZE * .4, 0); 
		graphics.lineTo(-SIZE * .4, 0); 
		graphics.lineTo(-SIZE * .2, SIZE * .1); 
		graphics.lineTo(-SIZE * .4, 0); 
		graphics.lineTo(-SIZE * .2, -SIZE * .1); 
		rotation = 150; 
	}
	cvsUI.addChild(obj);
	addChild(cvsUI);
}

ちょっとテストもかねてFlexでも動かしてみたかったの書き変えてみた。


他、参考

MSのFlashSilverlight
可能性あるの?

Airの公式
http://www.adobe.com/jp/products/air/

Flashで作った iPhoneアプリがリリースされたよ
http://fladdict.net/blog/2010/01/flash-for-iphone-2.html
アプリの実装の普及を考えた場合Objet-Cだけというのは厳しいので、いつか来る道なのかなと…。
一番いいのは今まで作ったコンテンツが流用できることだよね。
そういう意味でmixiアプリmixiアプリ向けに作らなくてもいいので、よかばってん。


Flash Lite
http://www.adobe.com/jp/products/flashlite/
携帯向けなのだが、配列が使えないなど、根本的なところが恐ろしい言語だと聞いている。