Home > Flash/Flex
Web 酒 肴
[ActionScript][アニメーション]Flex勉強会@京都開催しました
- 2009-02-15 (Sun)
- ActionScript , Flash/Flex
先日(2/7)、京都でFlex勉強会を開催しました。20人以上の方が参加してくださり、おかげさまでその後の懇親会も含めて大変盛況でした。 会場を提供してくれた上、様々なご協力をいただいたソフトディバイスさん、本当にありがとうございました。
僕もActionScriptでのアニメーション入門を少し発表したので、その時の資料に少し手を加えたものを掲載しておきます。 wonderflというサービスを使い、ソースコードとサンプルを画面上で見れるようにできました。 便利ですね。
Adobe MAX Japan 2009のサイトに隠しステージ
- 2009-01-22 (Thu)
- Flash/Flex , その他
「Adobe MAX Japan 2009」、東京出張のタイミングが合えば行こうと思ってたけど、どうも無理みたい。
んで告知サイトに隠しステージ見つけた。
隠しステージってほど隠してないんだけど・・・
上のリンクから飛んで行って、するとトップページでビデオが流れだして、もう少し待ってると背景がうっすら出てくる。 そうすると画面の枠外どこでもいいからクリックしたら、その背景の中に入っていけます。 最後まで見たことないけど、色んなとこクリックするとどんどん画面が変化していく。
全部英語なので作ったのは本社の人かな? こういう遊び心がいいよね。
[Flex]調和級数の部分和計算フォーム
- 2009-01-06 (Tue)
- 数学 , Flash/Flex , ActionScript
調和級数がどのように増加するのかを検証するために、調和級数の部分和を計算するツールを作りました。
PCスペックにもよりますが、x = 1000000(ひゃくまん)を入力するとアホほど時間がかかります。 なので1,000,000より上は入力できないようにしました。
計算結果は分数と小数両方表示します。 分数計算がめんどくさそうだったけど、ユークリッド互助法使って最大公約数を出す関数作ったら、それ使って最小公倍数も出せて結構簡単に 通分とか約分ができた。
上記2関数のソースを一応載せときます。
public class MathFunctions
{
/**
* 最大公約数を計算する
* @param m
* @param n
* @return
*
*/
public static function gcf(m:Number, n:Number):Number{
//負の数の場合は正の数に変換
m = Math.abs(m);
n = Math.abs(n);
while(true){
if(m < n){
var tmp:Number = m;
m = n;
n = tmp;
}
if(n == 0) return m;
if(m % n == 0){
return n;
}else{
m = m % n;
}
}
return 0;//コンパイルエラーを防ぐため(実際にはここに到達することはない)
}
/**
* 最小公倍数を計算する
* @param m
* @param n
* @return
*
*/
public static function lcm(m:Number, n:Number):Number{
var gcf:Number = gcf(m, n);
return m / gcf * n;
}
}
[Flex]Fleverlight勉強会 Vol.2 in 大阪
- 2008-11-23 (Sun)
- 勉強会 , Nucleus , Flash/Flex
Fleverlight勉強会というものに参加してきました。 普段は別々で活動している「Flex勉強会」と「Silverlightを囲む会」が合同開催するという、 一触即発(ウソ)なガチンコ勝負(ウソ)です。 もちろん僕はFlex側の参加者だったわけですが・・・
なぜかSilverlightのTシャツを2枚もゲット

マイクロソフトの大西彰さんが持ってきてくれました。 懇親会でも大西さんは、興味深い話をたくさん話してくれました。
「京都で勉強会やったら来てくれますか?」という問いにはきさくにOKしていただきました。 さすがにFlex勉強会に呼ぶわけにはいかないと思うので・・・Silverlightも絡んだ企画のときはぜひ声をかけさせてもらうのでお願いします。
NetBeansといい、なんか最近Tシャツづいてますねぇ。 そうそう、そういえばNetBeans日本語FAQプロジェクトの方から連絡いただきましたがNetBeans6.5の日本語版が正式リリースされたらしいです。 Rubyに関して大きな機能の追加はないのかもしれないですが、僕が使ってるのが確か6.0だったのであらゆる面でこなれているはず。 そろそろ乗り換えてみようかな。
さてさて、そろそろ「Flex勉強会 in 京都」の定期開催に向けていろいろ準備していきたいと思います。
でも最近仕事がずっと忙しかったので、今日と明日は完全にオフ。
来週から取り組みます![]()
[FLex]ゆるふわ掲示板 in 変なプログラマーの作り方
- 2008-11-16 (Sun)
- Flash/Flex , ActionScript , 勉強会
変なプログラマーの作り方という勉強会でプレゼンターをしました。 主催者が同じ会社のfujioka0729だったこともあり、お願いされたというわけです。 会社の仕事がかなり厳しいこのタイミングに振ってくるとは中々にSな奴です。 ま、僕はMなので受けたわけですけど。
テーマが掲示板ということなので、Flexでゆるふわ掲示板を作ってその紹介をしてきました。 「変な」というテーマを目指していたはずが、いつの間にかそれを忘れてて、最終的にはそれほど変わったものにならなかったというのが反省点かな。 作ったものはこちら。
「ゆるふわ掲示板」(公開停止しました)
- 画面上でクリックするとその周辺の書き込みを表示後、その位置に書き込むフォームが表示されます
- 頑張って探さなくとも色んな穴があるので、優しさを持って接してください。怖いので、多分そのうち削除しますけど。
まあ色々と手を抜いてる部分があるのですが、下のほうでソースでも晒しておきます。 (手を抜いているからこそソースを読んでも何が何やらわからない → わからないから手を抜いてるとわかる、みたいな。)
勉強会は会社の知人の出席率が高く、盛り上がりました。今後は幅広く色んな人が参加してくれれば楽しくなりそうですね。 毎回、投票で最も「変な」プログラマが選出される、というのが特色です。
そしてなぜか今回は僕が選ばれてしまいました。 自分で自分に投票するという節操のなさが勝因でしょう。 他にはこんなことをした方がいました。
カップラーメンより早く掲示板を作る by fujioka0729
- Railsを使ってその場で掲示板を作る
- その後、一行ずつアニメーションで表示するようなJavaScript処理を追加
- 全てその場でライブコーディングしたので、かなりテンパッてて面白かった
- Windowsのコマンド、いわゆるバッチファイルでサーバサイドの処理を作るというもの
- CGIのインターフェースを利用
- 「変なプログラマ」という勉強会の趣旨には一番あってたのではないかと思われる
上記の2人は主催者でもあります。 参加した皆さん、お疲れ様でした。 また会いましょう。
[翻訳]Flex3 Cookbook 1.11 イベントバブリングの使用
- 2008-10-21 (Tue)
- Flash/Flex , 翻訳 , ActionScript
Flex3 Cookbookが不親切な上に誤植があったため、ついでに翻訳してみる。 僕が英語読めてないだけだったりして。
とってもテキトー翻訳だと断っておきます。
注
3つのMXMLファイルのソースが出てきますが、BubblingComponent.xml, BubblingComponentHolder.mxmlはソースの配置場所に以下のフォルダを作成し、そこに配備してください。
oreilly/cookbook
上記2ソースの先頭にある
xmlns="oreilly.cookbook.*"
で察しろということなんだろうけど、僕はいまいちその辺の知識がないので少しハマりました。
1.11 Use Event Bubbling の翻訳
課題
あなたは子要素のコンポーネントから親要素のコンポーネントへと順次呼び出されるイベント処理を書きたい。 もちろんイベントリスナ内で呼び出し処理を書くというような手間のかかる方法ではなく。
解決法
子要素から順次通知されるイベントバブリングの仕組みを使いましょう。
検討
イベントのバブリングを理解するにはいくつかのクラスを作成してみる必要があります。 MOUSE_DOWNイベント、CLICKイベント、KEYBORDイベントなど、いくつかの種類のイベントを発生させることができます。 バブリングという言葉はイベントがディスプレイの階層をアプリケーションコンテナまで上っていく様子をあらわします。 泡が水中を上っていくかのように。
ユーザが何らかのコンポーネントをクリックしたとき、そのイベントはコンポーネントの階層を上っていきます。 つまり親コンポーネントは子コンポーネントのクリックイベントを監視し、子要素で発生したイベントを検知できるということです。 親コンポーネントに、子要素のある種類のイベントすべてを監視させるには、単に子コンポーネントの記述部にリスナを追加すればよい。
oreilly/cookbook/BubblingComponent.mxml
<mx:HBox xmlns:mx="http://www.adobe.com/2006/mxml" width="400" height="200">
<mx:Script>
<![CDATA[
private function sendClick():void
{
trace(" BubblingComponent:: click ");
}
]]>
</mx:Script>
<mx:Button click="sendClick()"/>
</mx:HBox>
上記のコンポーネントはボタンを保持しており、そのボタンはクリックイベントを発生させる。 そのイベントはBubblingComponentのインスタンスを保持するコンポーネントにイベントを伝えていく。 そのイベントを検知するにはBubblingComponentを含むコンポーネント内でクリックハンドラを用意すればよい。
<cookbook:BubblingComponent click="handleClick()" id="bubbler"/>
上記の要素を含むようにBubblingComponentHolderを以下のように作成する。
oreilly/cookbook/BubblingComponentHolder.mxml
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="400" height="300"
xmlns:cookbook="oreilly.cookbook.*">
<mx:Script>
<![CDATA[
private function handleClick():void
{
trace(" BubblingComponentHolder:: click ");
}
]]>
</mx:Script>
<cookbook:BubblingComponent click="handleClick()" id="bubbler"/>
</mx:Canvas>
上記のコンポーネントは他にもイベントを監視するコンポーネントがあれば、アプリケーションレベルまでイベントを通知する。 メインアプリケーションBubblingHolderを作成すればBubblingComponent.mxmlで発生したクリックイベントは最終的にアプリケーションレベルにまで通知される。
BubblingHolder.mxml
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" xmlns:cookbook="oreilly.cookbook.*">
<mx:Script>
<![CDATA[
public function createName():void{
name = "Flex Cookbook";
}
]]>
</mx:Script>
<cookbook:BubblingComponentHolder/>
</mx:Application>
MouseEventの一連のイベントはクリック位置などの付属情報を、それを監視する子要素を持つコンポーネント階層を特定し、Stageにイベントを通知する。
StageはMouseEventを検知すると先ほどのコンポーネント階層を、ユーザがマウス操作した最後のコンポーネントにたどり着くまでイベントを通知していく。 これはキャプチャリングと呼ばれる。次にイベントを処理すべきイベントハンドラが実行される。これはターゲッティングと呼ばれ、イベントに実際のターゲットが与えられる段階である。最後にバブリングの段階に入り、コンポーネント階層をさかのぼってStageまで順にイベントを通知する。
[Flex][ActionScript]Flex3 Cookbook
- 2008-10-20 (Mon)
- Flash/Flex , ActionScript
最近お世話になっている以下のサイトで紹介されていた本を買いました。
書籍はこちら。
ようするにFlex3の逆引き本です。 日本語翻訳されたものはないらしく、この機会に初めて技術書の洋書を買いました。 そのうち日本語訳されるんだろうけど、一部はここに翻訳も掲載していこうかと思っております。
Home > Flash/Flex