Home > ActionScript 3.0 Archive

ActionScript 3.0 Archive

ActionScript3.0ライブラリ入門

すべてのFlash開発者必携

どどどーんと!豪華執筆メンバーでお送りする、ActionScript3.0ライブラリ入門の執筆に参加させていただきました。本書はActionScript3.0で無くてはならないライブラリを惜しみなく紹介しており、入門者から上級者まで是非手元に置いておきたい一冊になっています。

Flash開発に欠かせないライブラリを惜しみなく紹介

Amazonの説明引用

ActionScriptは、バージョン3.0になって本格的なオブジェクト指向プログラミング言語へと進化したことにより、ライブラリやフレームワークの公開・共有が活発に行われるようになってきました。現在では、トゥイーンアニメーション、物理演算、3Dエンジン、グラフィックなどのコンテンツ表現力に繋がるものや、非同期処理や通信などのロジック構築に繋がるものまで、さまざまなライブラリが登場しています。ライブラリを使うことで、表現力や生産性を高めることができるため、今後ActionScript開発においてライブラリは欠かせない存在になりつつあります。本書は、その ActionScriptライブラリの入門書です。前半では、まずライブラリを使うための基本を解説し、後半では「Tweener」「Papervision3D」「Box2DFlashAS3」「FLARToolkit」などニーズの高いライブラリや制作現場でよく利用されているライブラリを19個取り上げ、それぞれその基礎知識と使用例を解説します。Flashクリエイターが「一つ上」に行くための必読書です。

僕が執筆したのは、2章8節"ブラウザ・埋め込み"。Flashサイトにおいて、もはやJavaScriptとの連携は避けて通れません。しかし、JavaScriptはとっつきにくいという実情もあると思います。本節で紹介しているSWFWheel,SWFAddress,SWFSizeなどのライブラリは、コアであるJavaScript連携を隠蔽し、開発者にその存在を気にさせることなく協力にサポートします。また、SWF設置に欠かせないSWFObjectについてDynamicPublishing,StaticPublishingの二つの機能をハイライトし、それぞれのメリット、デメリットについて言及します。

現役開発者中心の、超豪華メンバー。

著者は 新藤愛大氏、河村晃匡氏、 池田泰延氏、 高輪知明氏、 タロタローグ氏、 小林陽介氏、 召田敬氏、 森山篤氏、 浦野大輔氏。Flash界で活躍する総勢10人の超豪華メンバーとなってます!担当パート等は後日追加予定です!

ご予約・ご購入

amazonで受付開始、7/14予定!

謝辞

本執筆に辺り、SWFWheel作者、ご多忙にも関わらず、泉川太延氏にご協力いただきました。この場を借りて御礼申し上げます。

  • Comments: 0
  • TrackBacks: 1
  • はてなブックマークに追加

ActionScript 3.0 :: テキストトゥスピーチ

CS5を待ち焦がれているkaedeです。こんにちわ。
世間ではgoogle tv やら google font api やらが騒がれている今日の頃、なんとも今頃知ったのですが、googleにはテキストトゥスピーチをしてくれるAPIが実装されているようなのです。

Continue reading

  • Comments: 0
  • TrackBacks: 0
  • はてなブックマークに追加

動画でみる Flash CS5 の 押さえておきたい新機能

ついに2010年4月12日、Adobe Creative Suiteの最新版であるCS5が発表されました。Xdayは5月28日なんとWebPremiumを買うとFlashBuilder 4 Premiumがついてくるそうですよ!MasterCollectionはFlashBuilder 4 Standardなので、MasterCollectionだけ買えばいいやと思ってる人は要注意です!追記:WebPremiumだとFlashBuilderPremiumついてくる話は、誤解だった模様。ほんとうは、WebPremiumも、MasterCollectionもFlashBuilderStandardのようです。

さて、今回はCSファミリーのひとつ、Flash CS5 Professional の新機能についてビデオつきでご紹介したいと思います。

Flash CS5といえばこのブログでもとりあげた、Packager for iPhoneが有名ですが、正直、もうpackage for iPhoneの情報はおなかいっぱいですよね?

FlashCS5はもちろん、それだけではありません!。というわけで、戦況芳しくないPackager for iPhoneはそっとして、XFL,TLF,ASEditor,CodeSnipetに関して、詳しく取り上げます。

Continue reading

  • Comments: 0
  • TrackBacks: 0
  • はてなブックマークに追加

ActionScript 3.0 :: リユース・オブジェクトとプリレンダリング

3/16、Adobeの太っ腹無料イベント、FlashCampがありました。
AdobeチームによるCS5の新機能紹介とiPhone向けの最適化や、RalphHauwert氏,MarioKlingemann氏,erikNatzke氏,深津貴之氏,新藤愛大氏といった超豪華メンバーでお腹いっぱいになってしまいました。

さて、iPhoneの最適化セッションでは、MikeChambers氏が口を酸っぱくしてpackager for iPhoneでなるたけパフォーマンスをよくするためのテクニックが紹介されていました。
そこではiPhone特有のtipsから、普段から使えるものまで紹介されていたわけですが、その一つ、オブジェクトの再利用(リユース・オブジェクト)と、プリレンダリングを試してみましょう。

Continue reading

  • Comments: 0
  • TrackBacks: 0
  • はてなブックマークに追加

BetweenAS3がoverwriteに対応。

超高速なTweenライブラリとして有名なBetweenAS3が念願のoverwriteに対応したようなので、さっそく試してみました。
左がTweener,真ん中が変更前のBetweenAS3、そして右が今回アップデートされたBetweenAS3を使ったトゥイーンです。かなり単純なスクリプトで、ロールオーバーされたらalphaが0.5に、ロールアウトされたら1になります。

挙動をみてみると、変更前の真ん中のサンプルでは高速にロールオーバー・アウトを繰り返すとチカチカしますが、右の最新バージョンではTweener版同様、気持ちよくトゥイーンしてくれます。今までは適宜stop()させないといけなかったので、嬉しい修正ですね!

  • Comments: 0
  • TrackBacks: 0
  • はてなブックマークに追加

Ruby :: ActionScript 3.0 とRubyの定義を見比べる - クラス編

日にちびちびとRubyを触ってます。そんな備忘録。 今回はAS3とRubyのクラス定義について見比べてみましょう。

Continue reading

  • Comments: 0
  • TrackBacks: 0
  • はてなブックマークに追加

ActionScript 3.0 :: マウスジェスチャー

SparkProjectに、MouseGestureをアップしました。MouseGestureは、その名の通りマウスジェスチャーを手軽実装するためのライブラリです。ジェスチャーの挙動としては、Firefoxのアドオン、ALL in one Gestureが近いでしょう。基本的には、左クリックが押された瞬間から離されるまでの挙動をイベントとして送出します。タッチパッドを用いた少ないアクションが必要とされる案件で使えるかも知れません。以下はサンプルと使い方。

Continue reading

  • Comments: 0
  • TrackBacks: 1
  • はてなブックマークに追加

Progressionを習得するなら、開発者に直接聴くのが一番早い

Progression、皆さん使ってますか?Progressionは、億劫なバッグエンドの処理を担い、高い拡張性と柔軟性を併せ持つコンテンツを開発することができる、ActionScript 3.0用のオープンソースフレームワークです。

67WSでは、この優れたフレームワークをProgression開発者 阿部貴弘氏自らが伝授することで、効率よく学習できるカリキュラムを、9月に続いて、10・11月も開催することが決定しました。

モダンなFlashが作りたいクリエーターの皆さんにお勧めの講座です。

この機会、お見逃しなく!

  • Comments: 0
  • TrackBacks: 0
  • はてなブックマークに追加

FlexPMD :: 環境構築から実験まで。-ソースコード解析によるバグの早期発見とコーディング規約準拠-

コンパイルエラーでもコンパイラ警告でもランタイムエラーでもない第四の警告を発するソースコード解析ツール

いつも拝見させていただいているAdobe の上条さんのブログ、akihiro kamijoで、気になるエントリーを見かけました。どうやら、AdobeからFlexPMDなるものがでた模様。早速試してみました。

Adobe FlexPMD とは?

flexPMD

もともとJavaなどで使われるPMDは、ソースコードを走査して、潜在的なバグやバグになりそうな問題を発見することができます。ざっくり言えば、バグ早期警戒探査器です。 とはいえ、ActionScript3.0でも多いにユーザーを悩ませているコンパイルエラーや、ランタイムエラーの類を見つけるものではありません。致命的にはならないが、非推奨な記述や定義がされているコードに対して警告を発生させます。また、コーディング規約の準拠にも対応し、それら警告はルールセットとよばれます。ルールセットはユーザーの好きなようなカスタマイズすることも出来ます。これを利用することで、大規模開発での複数開発者間で、ルール統一を計ることができるわけです。

例えば以下のようなバグ予備軍コードを発見することが出来ます。

  • 未使用のコード(関数・変数・定数)
  • 非効率的なコード(動的フィルタ・コンストラクタの誤用)
  • 複雑なコード(ネストされたループ・あまりにも多いの条件式)
  • 長すぎるコード(クラス、メソッド)

なんとなくわかったところで、さっそく環境構築を始めましょう!

Continue reading

  • Comments: 0
  • TrackBacks: 1
  • はてなブックマークに追加

Event :: ここから始める ActionScript 3.0 入門前 !

9月16日、グローバル・テクノロジー・デザイン株式会社様主催の無料AS3入門者向けイベントに出演します。

内容はまさしく、入門者向け。コードのお話ではなく、いかにしてAS3を始めるか、どうすればAS3を効率的に習得できるか、に焦点を当ててトピックを紹介していきます。

会場はデジタルハリウッド渋谷校となっており、参加申し込みは予約制・無料となっております。

これからActionScript 3.0をはじめたい方、ディレクターやチームリーダーをしていて、AS3のがどんなものか、確認しておきたい方は是非ご参加くださいませ。

お申し込みは以下のサイトにて受付中です。

GTD ADVANCE SEMINER Vol.7
「ここから始める 『ActionScript 3.0』 入門前 !」

  • Comments: 0
  • TrackBacks: 0
  • はてなブックマークに追加

ActionScript 3.0 :: SWFPanelで発生したエラーを出力する

SWFPanel。便利な機能ですよね。Progressionでも活用されていますし、自分専用のジェネレターとか作れてしまうスグレモノです。

でも、欠点は開発のデバッグが大変なこと。traceとか、ランタイムエラーとか、出力パネルでないんです。

じゃぁ、どうしようってなるわけです。

Continue reading

  • Comments: 0
  • TrackBacks: 0
  • はてなブックマークに追加

直感的かつ再利用性の高いアニメーションライブラリ BetweenAS3

SparkProjectに毎度顔を出しているような、ASマッチョな貴兄には、もはや定番のBetweenAS3。僕は今までぐだぐだTweener使っていたクチなんですが、FlashPlayer 9 対応したとのことで、訃報も久しいTweenerから乗り換えました。正直にいいます。

こんな直感的なライブラリは見たことがない。

Continue reading

  • Comments: 0
  • TrackBacks: 1
  • はてなブックマークに追加

ActionScript 3.0 エラーアーカイブス Amazon予約開始!!

ActionScript3.0エラーアーカイブス コンパイルエラー・コンパイラ警告・ランタイムエラーの解法

前々回のエントリーで紹介し、twitterや、はてブで反響を頂いたActionScript 3.0 エラーアーカイブスですが、Amazonにて予約開始されました!

なお、初版はわりと少なめですので、ご予約・ご購入はお早めのほうがよいかもしれません、、

Amazon.comでのご予約

ご紹介いただいたブログ

とてもお世話になっている方々から激励のエントリーが!!ありがとうございます。

  • Comments: 0
  • TrackBacks: 0
  • はてなブックマークに追加

ActionScript 3.0 エラーアーカイブス -コンパイルエラー・コンパイラ警告・ランタイムエラーの解法

コンパイルエラー・コンパイラ警告・ランタイムエラーの原因と解決法がわかる本

ActionScript 3.0エラーアーカイブス

追記

ActionScript 3.0エラーアーカイブスは、初心者が躓きやすく、上級者も戸惑うコンパイルエラー、コンパイラ警告、ランタイムエラーの原因・解決法を掲載した、今までに前例がない内容のAS3書籍です。

しかも、ロクナナワークショップ講師・大重美幸氏を監修としてご協力していただき、より洗練された内容となっています。

 

リファレンスや入門書とは違う、"第三の本"として、本書があなたの新しい旅の仲間に加えていただけたら、幸いです。

Continue reading

  • Comments: 0
  • TrackBacks: 0
  • はてなブックマークに追加

JSFL :: SWFPanel(AS3/SWF)のメソッドを呼び出すswfPanel.call

以前のエントリーでも、MMexecuteに関してはとりあげました。では、JSFL側が、SWFPanelとやりとりしたい場合はどうでしょう。これには、JSFLのswfPanelオブジェクトには、callメソッドを使用します。

Continue reading

  • Comments: 0
  • TrackBacks: 0
  • はてなブックマークに追加

ActionScript 3.0 :: ネームスペースを付加したメソッドのオーバーライド

ネームスペース(名前空間)、使ってますか?実際便利なんですが、あんまり使っている人見ないですよね。

さて、ネームペースが付加されているメソッドのオーバーライドは、ただoverrideキーワードを付加するだけではうまくいかず、スコープに注意を払う必要があります。

クラスレベルのネームスペースを付加したメソッドを継承する

クラスレベルのスコープ。つまりclassキーワードで括られた範囲内のスコープに定義されたネームスペースをメソッドに定義した場合です。この場合の注意点は、スーパークラスで定義されているネームスペースは、サブクラスでもアクセスできなければならない。ということです。ActionScript 3.0の仕様では、internal(パッケージ内のみアクセス可)になり、それ以外にpublic(どこからでもアクセス可)、protected(サブクラスのみアクセス可)、private(外部からアクセス不可)の四つのアクセス制御指定子が存在します。ここでは、サブクラスでアクセスしなければならないため、protectedを指定します。あとは、いつもと同様にオーバーライドをかけるだけです。

Continue reading

  • Comments: 0
  • TrackBacks: 0
  • はてなブックマークに追加

ActionScript 3.0 :: IP情報を4ステップで取得できるライブラリ IPinfodb

IPinfodbは、IP情報を一括してXMLやJSON,XMLなどの各種データで取得できるサービスです。このサービスを利用すれば、アクセスしたユーザーのIPを取得し、国名・県名、アクセスポイントの経度緯度などを活用することが出来ます。

Continue reading

  • Comments: 0
  • TrackBacks: 0
  • はてなブックマークに追加

FlashDevelopで開発を10倍楽にする便利なコメントパターンとメタデータタグ

ActionScript開発で欠かせないのはIDE(統合開発環境)ですが、その中でもフリーで高機能なFlashDevelopは説明が不要なほど有名です。
その高機能性は群を抜いており、FlashBuilder(Flash ProfessionalはActionScript開発にはちょっと心許ないです)やFDTともひけをとらない性能を持っています。
そんなFlashDevelopですが、便利な機能をさらに高機能にすることができます。

そのひとつがコメントパターンです。これはJAVAなどのプログラミング言語によく見られ、規則的なコメント方法で記述することでコードが見やすくなるだけでなく、IDEによっては有利な機能を働かせることが出来ます。
FlashDevelopでは以下のようなコメントパターンがみられます。

Continue reading

  • Comments: 0
  • TrackBacks: 0
  • はてなブックマークに追加

JSFL :: Flashのタイムラインに文字を書く

timelinemessage1.png

先のエントリーで、Geoff氏の誕生日用に作ったJSFLを用いたタイムラインメッセージ。

ポイントは3つ

  • JSFLとAS3(SWF)の連携
  • AS3によるパーティクル表現
  • JSFLの限界

これを踏まえて、以下解説編です。

Continue reading

  • Comments: 0
  • TrackBacks: 0
  • はてなブックマークに追加

SparkProject勉強会#9でGeoffを全力で祝ってきた

title.png

昨日、SparkProject勉強会#9にスピーカーとして参加しました。今回、SWFObjectの開発者であるGeoff Stearns氏が来日・ゲストとして登場し、氏の誕生日と言うこともあってすごい盛り上がりでしたね。

で、僕はJSFLについて自分がコミットしているものを紹介したわけなんですが、それとは別にGeoffが誕生日ってことで皆でFlashつかって祝おう!って企画があがったわけです。

ARを使ったバースデーケーキの拡張現実やら、WEBカムでGeoffの顔をあしらったケーキを生成したり、もうすごいのなんの。僕は性懲りもなく、JSFLでお祝いしました。どんだけJSFL好きなんだと。

Continue reading

  • Comments: 0
  • TrackBacks: 1
  • はてなブックマークに追加

ActionScript 3.0 :: SWFPanel(AS3)とJSFLを連携するMMExecute2

ちょっと使いづらいMMExecuteを少しだけ使いやすくするユーティリティクラスMMExecute2をSparkにコミットしました。

as3のMMExecute関数は、SWFPanelとJSFLの連携を図るためのパッケージ関数です。引数にJSFLコマンドをStringで渡すことで、SWFPanelからJSFLを実行することが出来ます。ところが、Stringにしなければならないため、外部のJSFLに定義されている関数を実行したり、引数を渡したりするのは、少しめんどくさく、かつとても見にくくなりがちでした。MMExecute2はそんな問題を解消します。

http://www.libspark.org/wiki/kaede/MMExecute2

Continue reading

  • Comments: 0
  • TrackBacks: 0
  • はてなブックマークに追加

ActionScript 3.0 :: 名前空間によるスウィッチング

ネームスペースとも呼ばれる名前空間は、ActionScript 3.0 * パッケージと名前空間では、以下のように説明されています。

名前空間では、作成したプロパティおよびメソッドの可視性を制御することができます。 public、private、protected、および internal アクセス制御指定子は、ビルトイン名前空間のようなものです。これらのあらかじめ定義されているアクセス制御指定子が要件を満たさない場合は、独自の名前空間を作成することができます。

上述でも説明されているように、public、private、protectedなどのアクセス制御指定子はメソッドやプロパティに対して外部からのアクセスを制御します。名前空間はそれのカスタムとも言うべきもので、メソッドやプロパティに対してアクセス制御を掛けることができるようになります。同名のメソッドやプロパティでも、名前空間を使って制御することによって文脈的な意味づけを付加することができるわけです。名前空間によって制御されたメソッドは、:: name qualifier演算子 を使ってアクセスすることができます。以下のサンプルコードでは、二つのanswer()メソッドが名前空間によって修飾されています。名前空間としてcorrect(正解)とwrong(不正)を用意することで、if文なしで条件分岐ができるわけです。

Continue reading

  • Comments: 0
  • TrackBacks: 0
  • はてなブックマークに追加

Flash CS4 で容量増大のバグ?

2009-05-19現在、ライブラリのオプション、未使用アイテムの選択をした状態でセーブすると容量が増大するバグが発生するようです。

早速試してみました。

Continue reading

  • Comments: 0
  • TrackBacks: 0
  • はてなブックマークに追加

ActionScript 3.0 :: イベントのデフォルト動作を拒否/定義する Event.preventDefault() / Event.isDefaultPrevented()

デフォルト動作

ActionScript3.0のイベントアーキテクチャには、デフォルト動作と呼ばれる副次的な処理が登録されているものがあります。代表的なものにTextEvent.TEXT_INPUTがあり、ユーザーがTextField内でキー入力をすると、自動的に文字列が追加されるのはこのためです。

Continue reading

  • Comments: 0
  • TrackBacks: 0
  • はてなブックマークに追加

ActionScript :: 配列内を検索するArray.indexof

今日は非常に基本的なtipsを紹介します。Array.indexOf()メソッドは、配列エレメントを走査し、該当するエレメントがあるか検索し、該当した場合はエレメントのインデックスを返すインスタンスメソッドです。

ただし、このメソッドは配列内に複数ある該当エレメントには対応していません。例えば下記のような配列があり、3が格納されているエレメントのインデックスを抜き出したいとします。しかし、3は複数あるので単純にindexOfしても返値は2です。

var array:Array = [1,2,3,3,4,5,6,7,8,9,10,3,6]

結果を配列内の該当する全てのエレメントにするためには、Array.indexOf()メソッドの第二引数がポイントになります。第二引数には、検索の開始位置を指定することができます。これを利用し、下記のサンプルでは、do-whileステートメントを使用し、該当のエレメントを発見したらそのインデックスを足し込み繰返し処理します。

var array:Array = [1,2,3,3,4,5,6,7,8,9,10,3,6]
repeatIndexof(array, 6);

function repeatIndexof(targetArray:Array, searchElement:*):Array {
	var result:int = -1;
	var results:Array = [];
	var reserve:Boolean;
	do {
		if (reserve) results.push(result);
		result = targetArray.indexOf(searchElement, ++result);
	}while (reserve = result >= 0)
	
	return results
}
  • Comments: 0
  • TrackBacks: 0
  • はてなブックマークに追加

AS3 :: XML / XMLListのフィルタリング

ActionScript 3.0では、E4X(ECMAScript for XML)をサポートしすることで、より柔軟で強力なフィルタリング機能を得ました。

ActionScript 2.0だとこの辺りが非常にややこしく、for地獄になりがちでしたが、ActionScript 3.0はかなりスマートです。

Continue reading

  • Comments: 0
  • TrackBacks: 0
  • はてなブックマークに追加

[JSFL]リアルタイムにパブリッシュを実行するコンポーネントRealPub[AIR]

http://www.libspark.org/wiki/kaede/RealPub

http://www.libspark.org/svn/mxp/RealPub/RealPub.zip

少し遅れてのコミットになってしまいましたが、先日行われたJSFL勉強会で発表したJSFLをSparkで公開しました。もともと、このコンーネントは以前行われたDTL.asで、吉川さんが公開して話題となったAIRアプリで実現するASエディタのリアルタイムパブリッシュ機能を、サーバー無しで実現させようと考え、開発しました。

リアルタイムパブリッシュ・コンポーネントRealPub

RealPubは、SWFPanel+AS3/JSFL/AIRの技術を使用したコンポーネントです。実行結果は題目通り、指定された秒数ごとにパブリッシュを実行し、専用のAIRアプリに表示します。FLASHコンポーネント内から独立するAIRアプリのため、常に最前面に表示することができ、パブリッシュ結果の確認を容易にします。

使い方は以下から

Continue reading

  • Comments: 1
  • TrackBacks: 0
  • はてなブックマークに追加

FlashDevelopで補完されないFlashCS4のクラスをまとめて解決

flパッケージ以下のクラスのコードヒントが表示されない!

FlashCS4やCS3のお供としてFlashDevelopを使っていると、コードヒントが表示されないクラスがたまにあります。
これは、コンポーネントクラスと呼ばれる、所謂よりよくするために跡付けで加えたものたちです。例としてFlashPlayBackや、FlashCS4で生成したボーンを制御するIK系のクラスがそれです。それらのコンポーネントクラスは、主にflパッケージに属しており、デフォルトではFlashDevelopはflパッケージ内のクラスを補完しません。
これらのクラスを補完させるには、FlashDevelopのGlobal ClassPathsに以下を追加します。

Global ClassPathsで追加

[Tools] > [Global ClassPaths..](Ctrl+F9)

※<install_folder_path>には、通常 C:\Program Files\Adobe\ が挿入されます。

  • <install_folder_path>Adobe Flash CS4\Common\Configuration\ActionScript 3.0\projects\Flash\src\fl
  • <install_folder_path>Adobe Flash CS4\Common\Configuration\ActionScript 3.0\libs\ik.swc
  • <install_folder_path>Adobe Flash CS4\Common\Configuration\Component Source\ActionScript 3.0\User Interface\fl
  • <install_folder_path>Adobe Flash CS4\Common\Configuration\Component Source\ActionScript 3.0\FLVPlaybackCaptioning\fl
  • <install_folder_path>Adobe Flash CS4\Common\Configuration\Component Source\ActionScript 3.0\FLVPlayback\fl
  • Comments: 0
  • TrackBacks: 0
  • はてなブックマークに追加

FlashCS4で埋め込んだフォントの一覧を取得[ActionScript 3.0]

Flashで埋め込んだフォントを、生成したTextFieldに指定したいけど、フォント名わかんねーよ、、なんでFlashで指定する名前とTextFormat.fontで指定する名前が一緒じゃないんだ!ばか!と、ツンデレちゃうFlasherの方もいるんじゃないでしょうか(自分もそうでした)

そんなときはこのコード。

var fonts:Array = Font.enumerateFonts(false)

Fontクラスの静的メソッドenumerateFonts()を使えば、埋め込まれているフォントの一覧を配列で取得することができます。配列に内包される要素はFontクラスで、インスタンスプロパティfontNameから参照することができます。第一引数enumerateDeviceFonts:Booleanをfalseにすれば、埋め込まれているフォントのみ取得、trueならば、デバイスフォントと埋め込みフォント、つまり使用できるフォント全てを取得することができます。便利ですね。フォントど忘れしたってときは、お試し下さい。
ちなみに、fontNameはreadOnly(読み取り専用)なので、変更できません。

配列の走査にはforEachが便利↓

Font.enumerateFonts(true).forEach(function(item,arr,index){trace(item.fontName)})
  • Comments: 0
  • TrackBacks: 0
  • はてなブックマークに追加

[AS3]Event.PASTE / Clipboard.generalClipboard.getData 覚え書き

Event.PASTEのコードをすぐに忘れてしまうため覚え書き。FlashPalayer10から実装されたClipboard.generalClipboardプロパティで、ユーザーのOSレベルでのクリップボードへのアクセスが可能になる。ただし、セキュリティのためEvent.PASTEイベントリスナー内でしか実行(取得)できない。これを解決するためには、ペーストを受け取るInteractiveObjectをスーパークラスとするインスタンスのcontextMenuに、ペースト(contextMenu.clipboardMenu && contextMenu.clipboardItems.paste)を許可したContextMenuクラスインスタンスを与える。あとはペーストを受け取るインスタンスにEvent.PASTEをリスナー登録すれば完了

package {
	import flash.desktop.Clipboard;
	import flash.desktop.ClipboardFormats;
	import flash.display.MovieClip;
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.ui.ContextMenu;
	public class Example extends MovieClip {
		
		public function Example():void {
			var pasteTarget:Sprite = addChild(new Sprite()) as Sprite;
			pasteTarget.graphics.beginFill(0);
			pasteTarget.graphics.drawRect(0, 0, 100, 100);
			
			var contextMenu:ContextMenu = new ContextMenu();
			contextMenu.clipboardMenu = contextMenu.clipboardItems.paste = true;
			pasteTarget.contextMenu = contextMenu;
			
			pasteTarget.addEventListener(Event.PASTE,pasteHandler)
		}
		
		private function pasteHandler(e:Event):void {
			var clipboadStr:String = Clipboard.generalClipboard.getData(ClipboardFormats.TEXT_FORMAT) as String;
			trace(clipboadStr)
		}

	}
} 
  • Comments: 0
  • TrackBacks: 0
  • はてなブックマークに追加

FlashDevelopのヘルプ検索をgoogleからコンポーネントリファレンスに変更する

FlashCS4とFlashDevelopのヘルプ機能(ダイナミック検索)

fd.jpg

FlashCS4のアクションパネルや、asファイルの編集時には、検索したい文字列(クラス名など)を選択してF1を押すことによって、該当の文字列をヘルプファイルから直で検索してくれます。すごく便利な機能です。
FlashDevelopでは、同様の機能で、該当の文字列をグーグルで検索してくれます。
google検索でももちろんいいのですが、
この設定を変えれば、ActionScript 3.0 言語およびコンポーネントリファレンスで検索できるようになります。

設定方法

設定を変更するには以下のようになります

  • F10もしくは[Tools]から、[ProgromSettings]を開く
  • 左メニューの[Plugins]から、AS3Contextを選択
  • 右の設定項目[Documentation]>Documentation Command Line]の値を
    [http://help.adobe.com/ja_JP/AS3LCR/Flash_10.0/search.html?search=$(ItmName)]
    に変更


  • Comments: 0
  • TrackBacks: 0
  • はてなブックマークに追加

2行でイベント→XMLロード→画像読み込み→表示できるAS3ライブラリ[Next]

つい先日、素晴らしいライブラリがSparkにコミットされたので、 ご紹介。

非同期処理ライブラリ Next

Sparkにコミットされている非同期処理ライブラリとして、Threadが有名ですが、
Nextはひだちのいろさんが開発した、超簡素に非同期処理を行うことを目的としたAS3ライブラリです。

一番簡素な例としては、

N.load("image.png").then = function(loader:Loader):void {
	addChild(loader);
}

超簡素!
たったこれだけで、画像をロードした後にaddChildすることができます。
Nは、予め定義されているNextインスタンス。グローバル変数なので、Nextをnewすることなくimportするだけで使用可能です。

load()とevent()

load()のみで、Sound,SWF,Bitmap,XMLなどなどに対応。使い方はStringでパスをしているするだけです。eventは、イベント処理に対応。イベントを発行するオブジェクトとイベントを定数(MouseEvent.CLICKetc..)かStringで指定すればOK。処理が終った結果が引数としてthenやfuncに定義するFunctionに渡ってきます。

組み合わせればこんなことも超簡素に!

N.event(btn, MouseEvent.CLICK).load("test.xml").then = function(e:MouseEvent, _xml:XML) {
	N.load(_xml.data["@src"].toString()).then = addChild 
};

ボタンをクリックしたらXMLを読み込んで、パースして、画像ロード後に表示!なんて処理も、たったこれだけ。正直、超変態(もちろん良い意味で)だとおもいます><

くわしくは

上記の他にも、SparkProjectの該当ページで開発者のひだちのいろさんがいろいろ解説されていますので、要ちぇっく!で早速スパーク!しましょー
http://www.libspark.org/wiki/hidachinoiro/Next

  • Comments: 0
  • TrackBacks: 0
  • はてなブックマークに追加

Firefoxの検索バーに ActionScript 3.0 リファレンスを追加する

as3search.jpg

Firefoxでas3のクラス検索したいー。

しかもgoogleさんじゃなくてActionScript 3.0 言語およびコンポーネントリファレンスの検索結果がでたら最高なのに。。

そんなお嘆きの貴兄に。

searchipluginsXMLを追加すれば、Firefoxの検索バーで、ActionScript 3.0 言語およびコンポーネントリファレンス内に含まれるクラスを検索できるようになります。

DownLoad

このXMLをFirefoxのユーザーデータ内のフォルダにいれてください。

例:C:\Documents and Settings\<USER_NAME>\Application Data\Mozilla\Firefox\Profiles\<USER_ID>\searchplugins

  • Comments: 0
  • TrackBacks: 0
  • はてなブックマークに追加

関数とメソッドの違い[ActionScript 3.0]

プログラミング経験者なら誰もが一度は思ったことがあると思うこの問題。
言語によって違いはありますが、ActionScript3.0に関して言えば、
書籍やネットを参照しても、答えはまちまちだったりします。
果たして、本当はどれなのでしょうか?

Continue reading

  • Comments: 2
  • TrackBacks: 0
  • はてなブックマークに追加

Flash+ActionScript開発・習得に欠かせない12の神器

Flashは、デザイナーや学生が初めて触れるには敷居が高いのだろうか。 僕自身、Flash初めて触れたのは中学2年のころで挫折したのを覚えている。

Beinteractiveのyossyさんも言及されているけど、ActionScriptって女の子に似ている。

新藤愛大――欲望という幻想を現実に変えるActionScripter

かわいい女の子とFlashの共通点はとっつきづらいところ、かわいい女の子とActionScriptの共通点は反応が面白いところ、かわいい女の子とECMAScript4の共通点はちょっとやそっとでは理解し合えないところ

僕自身の独断と偏見だけど、AS1はやさしいくてドジっこ。AS2はじゃじゃ馬のツンデレで怒ると怖い。AS3は清楚なしっかりもの。いわゆる生徒会長タイプでやっぱり怒ると怖い。という勝手なイメージがあるんだけど、みんなはどう?

さて、前置きは長くなってしまったけれど、僕が彼女たちとつきあっていく上で重宝しているツール・tipsを紹介します。去年のはじめから今年にかけて大分話題になったところが多いので、彼女たちをメロメロにさせてるASerたちには物足りないと思いますが、ご了承ください。

  • 1.Flash CS4
  • 2.FlashDevelop 3 RC
  • 3.FlashPlayerDebugger+4.FlashTracer
  • 5.swfswitcher
  • 6.Library
  • 7.Spark project
  • 8.swfobject.js
  • 9.ActionScript 3.0 言語およびコンポーネントリファレンス
  • 10.wonderfl
  • 11.Adobe TV
  • 12.書籍

Continue reading

  • Comments: 0
  • TrackBacks: 0
  • はてなブックマークに追加

今話題のwonderflでスパークしてみた。

説明はもはや必要ないと思うので省きますが、
今話題のwonderflに投稿してみました。
スパークします。

  • Comments: 0
  • TrackBacks: 0
  • はてなブックマークに追加

[Flash CS4]stage.stageHeightが大幅に少ない値を返す[バグ]

このバグは、Flash CS4においてプロファイラを開いた状態でパブリッシュすると、stage.stageHeightが本来のstageHeightよりも100少ない値を返します。
CS3以前は、プロファイラ込みの値が返ってきていたようです。

//本来のステージサイズは400
trace(this.stage.stageHeight)/出力/300
  • Comments: 0
  • TrackBacks: 0
  • はてなブックマークに追加

型を特定する[as2/as3/JSFL]

Flash周りのスクリプト言語で型を特定したい場合、 as2,as3,jsflではそれぞれ実装がことなってきます。

例えばas2の場合、

//as2
typeof(test_mc)//movieclip

typeof()を用いて特定ができます。
as3の場合では、typeofを実行しても objectが返ってくるため、
同じようにはいきません。
私の場合はよくisステートメントを利用します。

//as3
(test_mc is MovieClip)//true

ところで、jsflではどうでしょう?

Continue reading

  • Comments: 0
  • TrackBacks: 0
  • はてなブックマークに追加

12月16日!SparkProjectイベント!

今度、ロクナナワークショップ主催で、自分もコミッタとして参加させていただいているsparkprojectのイベントがあります!

sparkprojectは、日本発・日本最大のActionScriptコミュニティーで、主な目的として役立ちライブラリをじゃんじゃんあげてみんなで幸せになろうという考えのもと、活動していて、Adobeのエバンジェリストや海外Aserにも認められています。

有料ですが、そうめん(Thread)ライブラリや、iphoneasの話なんかが聞けちゃいます。
これを機に各種ライブラリを使ってみたり、sparkprojectに参加してみてはいかがでしょうか?この機会に是非!

詳しくは以下のページから!

  • Comments: 0
  • TrackBacks: 0
  • はてなブックマークに追加

FlashPlayer10における消失点調整/PerspectiveProjection.projectionCenter[as3]

FlashPlayer10になって、displayobjectに3dが扱えるようになりました。これによってzやrotationX/Y/Zなどの3d関連プロパティが追加されました。

さて、3dといえば、消失点です。wikipediaを見ると、以下のように解説されています。

多くの透視図には消失点 (vanishing point) が存在する。一点透視図法とは水平線上に1つの消失点を持つものであり、視界に存在するすべての平行な直線は、距離に比例してこの消失点へと近づいていき、やがて消える。まっすぐ地平線の彼方へと消える2本の線路を想像すればわかりやすいだろう。

as3的にかみ砕いて言えば、消失点を調整すればdisplayObjectのzを高めたときに、その点のx,y座標に向かって遠ざかっていき、最終的に消えます。

Continue reading

  • Comments: 0
  • TrackBacks: 0
  • はてなブックマークに追加

SWFのデフォルトコンテキストメニューを非表示化する[ActionScript]

忘れやすいので、自分自身の為にもメモ
下記のスクリプトでas2,as3それぞれのコンテキストメニューの非表示化する

as2

this.menu = new ContextMenu()
this.menu.hideBuiltInItems()

as3

this.contextMenu = new ContextMenu();
this.contextMenu.hideBuiltInItems()
  • Comments: 0
  • TrackBacks: 0
  • はてなブックマークに追加

Setter(set)/Getter(get)は積極的に使うべき[ActionScript3.0]

set/getを使ってアクセス制御する

本来、オブジェクト指向の考え方ではなるべくprivateキーワードを使って外部からのアクセスを遮断し、クラスに対し自律責任的に行動するようにします。

しかしやむを得ず外部からのアクセスを許す場合は、最低限の安全を確保したいものです。

安易にpublicにすれば、外部からの直接的なアクセスをすべて許すことになり、バグなどの危険も増す可能性があります。かといって、protected(定義クラスとサブクラスのみアクセス可)やinternal(定義クラスと同一パッケージでのみ可)では範囲がせますぎます。

ビルドインクラスのインスタンスプロパティには、読み取り専用・書き込み専用があります。これらのプロパティは、制限がかかっているため、たとえば読み取り専用の場合は書き込みができず、参照しか行えません。 このようにアクセス制御ができればよいのですが、ではどうすればいいのでしょうか?

Continue reading

  • Comments: 0
  • TrackBacks: 0
  • はてなブックマークに追加

複数のSpriteやMCのプロパティを一括/指定traceできるクラスSanzoku.as[ActionScript3.0][SparkProject]

ちょっと前から参加しているyossyさん運営のSPARKProjectに、遅ればせながら初コミットしてみました。

SparkProject/Sanzoku

Sanzoku.as

このSanzokuは複数のSpriteやMovieClip?のプロパティを一括・指定でtraceしたりfirebugのコンソールに出力するクラス です。

Sanzoku.peep(target)とするだけで、MCやSpriteのビルドインプロパティを覗くことができます。

以下、例:ルートでSanzoku.peep(this)を実行した場合の出力結果

Continue reading

  • Comments: 0
  • TrackBacks: 0
  • はてなブックマークに追加

[as3]Array filter()と無名関数を使って配列のフィルタリングに汎用性をもたせる

配列を扱っていると、条件に合うエレメントを絞り込みたいことがよくあります。
たとえば、クラスの生徒の名前を集約した配列があるとします。その中から、"ben"だけを抜いた配列を作りたい。 そんな時は、as3でArrayクラスに新しく実装されたfilterメソッドがお勧めです。

このパブリックメソッドは配列内の各エレメントについてテスト関数を実行し、指定された関数について true を返すすべてのエレメントを含む新しい配列を生成します。つまり、falseを返したエレメントはこの新しい配列には含まれません。

以下、サンプルコード

Continue reading

  • Comments: 0
  • TrackBacks: 0
  • はてなブックマークに追加

AS3でFlashVarsを取得する/SwfObejectを使ってFlashVarsを定義する

FlashVarsを取得する(ActionScript 3.0)

HTMLに埋め込まれている変数を取得することができるFlashVarsですが、ActionScrip2.0では_roo.tomのように存在しない変数名であっても簡単に取得することができました。

しかしActionScript 3.0ではこの仕様はなくなり、ドキュメントクラス、またはタイムラインに属するMovieClip・SpriteクラスのloaderInfoプロパティ内に置かれます。
loaderInfoのparametersオブジェクトを参照すると、しっかりと受け取ることができます。
以下はfor in を使ってFlashVarsを取得する例です。

//FlashVarsの受取り
for (var name:String in loaderInfo.parameters) {
	trace(loaderInfo.parameters[name])
}

SwfObejectを使ってFlashVarsを定義

さて、FlashVarsはおおよそ、HTML/XHTMLのparamタグ内に以下のように定義します。






本来はこのように埋め込みますが、SWFobject.jsを使った場合、embedSWFメソッドの第7引数にオブジェクトとして指定することで、実現できます。



var flashvars = {
	reqURL:"test.xml"
};
swfobject.embedSWF("test.swf", "contentSwf", "920", "427", "9.0.0","",flashvars);


  • Comments: 0
  • TrackBacks: 1
  • はてなブックマークに追加

Point.distance()を使ったドラッグアンドドロップテクニック[ActionScript 3.0]

smile.jpg

ActionScript3.0でドラッグの動作を実現させるためには、startDrag(),stopDrag()を使います。
単純なドラッグ処理でしたらこれだけでも十分なのですが、
ドラッグとクリックを分けたいという場合がでてきます。
こういう場合、Pointクラスのdistanceメソッドを使って判定処理を行うことで実現できます。

http://xingxx.com/sample/drag.html

流れとしては以下のような感じになります。

  1. マウスが押されたら座標を取得する
  2. マウスが押された状況でマウスを動かしているかをイベントでキャッチする
  3. 動いていたらドラッグの開始
  4. マウスが離されたら座標を取得
  5. 二つの座標を比べ、0だったらクリック処理、それ以外だったらドラッグの処理として判定する

ソースにすると以下のようになります。

Continue reading

  • Comments: 0
  • TrackBacks: 0
  • はてなブックマークに追加

Sprite/MovieClipのマウスイベントを無効にする

AS2では、ロールオーバー時にマウスカーソルのハンドポインタを無効化するuseHandCursorがありましたがAS3で実装されたmouseEnabled は、
SpriteやMovieClipなどのInteractiveObjectにおいてマウスイベントが発生した場合の挙動を一切無効化します。

つまり、イベントリスナーはマウスイベントを全くキャッチしなくなります。これを応用することで、複雑なマウスイベント処理が可能となります。

ちなみに、MovieClipではフレームラベルに_up,_over,_downのそれぞれを設定し、buttonModeをtrueにすると、ボタンのように挙動しますが、
enabledプロパティをfalseにすれば、これらの処理を無効化することができます。

_mc:MovieClip = new MovieClip();
with(_mc){
	buttonMode = true;
	enabled = false;
	mouseEnabled = false;
}
  • Comments: 0
  • TrackBacks: 0
  • はてなブックマークに追加

getPixelとlocalToGlobalを用いたパーティクル・アニメーションテクニック[ActionScript 3.0]

snowText

今回のサンプルは入力されたテキストを読み込んで、パーティクルを生成、文字の形に沿って積もっていきます。

>snow text :: create particle

これを実現するために、以下のように手順を踏みます。

  • 入力されたテキストを読み込んでテキストフィールドにする
  • このテキストフィールドをビットマップデータに変換する
  • ビットマップデータからビットマップを生成
  • ビットマップを表示
  • 表示されたビットマップのカラー値をピクセル単位で取得
  • カラー値をローカル座標に置き換え、グローバル座標に変換
  • パーティクルを生成してTweenerで座標に向けてアニメーション

このように、幾つかの手順を踏む必要があります。ここで肝となるのはパーティクルの一つ一つを特定の座標へ向かわせるためにテキストをビットマップ化しているところです。

特定の座標をとるためにBitMapClassのGetpixel()を、取得した座標をグローバル座標に変換するのにDisplayObjectClassのlocalToGlobal()用います。

以下ピックアップソースです

Continue reading

  • Comments: 0
  • TrackBacks: 0
  • はてなブックマークに追加

Flash CS3 でGoogle Maps API for Flash を使う

Google MapのFlash版APIが出されて数か月がたちましたが、まだFlexのみ対応ということでFlash CS3 使いの方々ももどかしい気分なのではないでしょうか。

そんな方々に朗報です。Google Maps API for Flash のGroupで立ち上がっているコミュニティーにおいて、Flash CS3対応のコンポーネントが配布されています。

Issue 329: Feature Request: Ability to use Adobe Flash CS3 Environment with Flash API

私自身、これは待ちに待ったものでした。
これで簡単にgoogle Mapを読み込むことができます。

そんなわけで、さっそくホットペッパーAPIと組み合わせてこんなものをつくってみました。

google Hot Mapper

CS3に対応したため、MovieClipとの連携が非常にしやすくなりました。
マーカーも簡単に作ることができます。Classも洗練されていて直感的に使うことができます。
AS3前提ですが簡単に組み込めますし、他のAPIとの連携もスムーズ。重いかと思いましたが、案外そうでもないです。

注意すべき点はひとつ、このswcはまだオフィシャルではありません。配布しているのはgoogleの中の人?という声も聞かれますが定かではありません。すべて自己責任でお願いします。

コメントどおり、Hope Google releases an official version soon... ですね

  • Comments: 0
  • TrackBacks: 0
  • はてなブックマークに追加

[XML]タグにxmlns属性があると空白が返る[ActionScript 3.0]

ホットペーパーのAPIを叩いて、返ってきたXMLを弄ろうと思い、
URLLoaderをつかってみた。

そこまではよかったんだけど、ノードを取ろうとすると空白が返ってくる...

この問題で30分くらいはまったので、メモとして残しておきます。
どうやら、読み込むXMにxmlns属性が付与されていると、ActionScriptではネームスペースを厳密に指定しないと取得できない。
なお、ここでのネームスペースはXMLノードに対してのものである。
以下FlashCS3ヘルプからの引用

XML オブジェクトの名前空間 : 名前空間により名前空間接頭辞と、名前空間を識別する URI (Uniform Resource Identifier) を関連付けます。接頭辞は、XML オブジェクト内の名前空間を参照する場合に使用されるストリングです。接頭辞が未定義の場合、XML がストリングに変換されたときに接頭辞が自動的に生成されます。

で、この名前空間があるおかげで、同一のノード名を扱うことができる代わりに、参照する際に特殊な指定をしなければならない。
このときの指定方法は、クラスや変数、メソッドで扱う場合と同じ:(コロン)を用いる

private function completeHandler(e:Event):void {
    _xml = new XML(urlLoader.data)
    var ns:Namespace = new Namespace("http://webservice.recruit.co.jp/HotPepper/")
    for each(var _target in _xml.ns::shop.ns::name) {
        trace(_target.text())
    }
}

xmlをURLLoaderで読み込み、COMPLETEイベントで完了後、XMLオブジェクトを生成する。ここまでは問題ない。
次に必要になってくるのが、Namespaceの生成。トップレベルクラスなので、importする必要はない。
ホットペッパーのAPIで使われているxlmnsは"http://webservice.recruit.co.jp/HotPepper/"だったので、これをいれる。

次に参照だが、通常_xml.shopのように、ノードをつなげるところを、_xml.ns::shopのように、ネームスペースをクッションさせてやる
このようにすることで、きちんと取得することができる。

  • Comments: 0
  • TrackBacks: 0
  • はてなブックマークに追加

UTC世界標準時間からローカル時間に変換する[as3]

utc世界標準時間は、1970年1月1日からのミリ秒。
タイムスタンプとも呼ばれている。
これを利用することで簡単に日付を弄ることが可能です。

var utc:Number = 1214387704781;

AS3ではトップレベルクラスのDateにUTC書式のNumberを引数として渡し、Dateオブジェクトを生成し、toString()を実行するだけで、西暦日付時間曜日・タイムゾーンまで返してくれる。

var date:Date = new Date(utc)
trace(date.toString())
//出力結果 : Wed Jun 25 18:55:04 GMT+0900 2008
  • Comments: 0
  • TrackBacks: 0
  • はてなブックマークに追加

papervision3dでWindows Aero風スライド作ってみた[ActionScript 3.0]

windows_aero_title.jpg

最近、やっとこさ実用レベルでActionScript3.0が理解できてきて、気になっていたpapervision3dを始めてみた。

年単位で遅れてる感を感じるけど、ActionScript3.0自体始めたのが今年からっていういまさらっぷり。

note.xさんのエントリーが非常に参考になった。

とりあえず、つくったものを晒してみます。とはいっても、ありがちな感じの、windows Aero風スライド。

windows aero slide

カーソルキーの→←で次戻りの移動、↓↑でズームインズームアウトです

Continue reading

  • Comments: 0
  • TrackBacks: 1
  • はてなブックマークに追加

javascriptとの連携でFlashコンテンツをお気に入り登録できるようにする

Flashサイトは普通、コンテンツ内をお気に入りとして登録することができない。
お気に入りというのはもちろん、URLを登録しているだけなので、小コンテンツを登録することなんて単一のフルFlashサイトでは不可能と思われがち。
もちろん、小コンテンツごとにFlashを分けて作って、そこにアクセスしてもいいけど、実は、フルFLashの単一コンテンツでもできる。

ActionScript 3.0 のExternalInterfaceをつかって、Javascriptと連携させるやり方を紹介する。

http://xingxx.com/shared/swf/flashBookmark/

以下、スクリプトと解説

Continue reading

  • Comments: 0
  • TrackBacks: 0
  • はてなブックマークに追加

Index of all entries

Home > ActionScript 3.0 Archive

Search
Feeds
Tag Cloud
Sticker
Recommend
Powered by POPit

Return to page top