2008/09/03
[FumioNonaka.com Newsletter: no.057]
//=========================================================================
// [FumioNonaka.com Newsletter]
//
var issue:uint = 57; // 第57号
var published:Date = new Date(2008, 9, 3); // September 3, 2008
//=========================================================================
var index:Object = {
No_0:ハエたたきが当たらない理由,
No_1:7月の新ネタ,
No_2:書きもの,
No_3:セミナー,
No_4:よろず新情報,
No_5:スクリプト覚え書き
}; //_____________________________________________________________________
/*
今月もイベントが多いです。ご興味とお時間と、それから多少のお金に余裕がある
方は、ぜひご検討ください。
■Flash Power Session 2008
<http://www.fps2008.org/>
2008年9月13日土曜日(新大阪/セミナーパート2,500円/懇親会 3,500円)
■ActionScript 3.0で始めるオブジェクト指向スクリプティング
− スクリプト初心者Day
<http://event.67.org/summercamp/nonaka1/>
2008年9月17日水曜日10:00-16:30(渋谷/12,800円)
■ActionScript 3.0で始めるオブジェクト指向スクリプティング
− 経験者Day
<http://event.67.org/summercamp/nonaka2/>
2008年9月18日木曜日10:00-16:30(渋谷/12,800円)
【No_0:ハエたたきが当たらない理由】========================================
最近こんな記事を読みました。
「『ハエたたきが当たらない』その理由が判明」(ITmedia News 08/09/01):
<http://www.itmedia.co.jp/news/articles/0809/01/news081.html>
「ハエは、飛び去るずっと前の時点で、迫りくる脅威の位置を判断し、回避する
ための方法を計算する。そして、逃げるのに最適な場所に脚を置き、脅威とは反対
の方向にジャンプして逃げ去る。
これらの行動はハエが脅威を発見してからわずか100ミリ秒の間に起きる。」
要約すると、「ハエは、ハエたたきが来る前に逃げるから」ということです。
また、「ハエをたたくのに適切な方法」として、「ハエの現在の場所をたたいても
ダメ。ハエが逃げるべきと判断した方向の、ちょっと先の方を狙うべき」だといい
ます。
わざわざ研究などしなくても、私たちが子どもの頃から知っていることですね(笑)。
原文のニュースリリースは"Caltech Scientists Discover Why Flies Are So Hard
to Swat"とされています。確かに、そのまま邦訳すれば前掲記事のタイトルになる
かもしれません。しかし、ディキンソン教授らの研究内容は、ハエがどれほど速く
危険を察知して、どのように逃げるのかというメカニズムです。
<http://mr.caltech.edu/media/Press_Releases/PR13179.html>
まず、ハエは迫る危険がまだ遠いうちに、その存在を認識できるようです。そして
瞬時に、その方向脚を向け、逃げ出そうとする向きに身体も傾けるというのです。
その間、わずかに100ミリ秒。その速度には、ハエたたきが追いつけないということ
です。
ハエのたたき方は、リリースからは少しわかりにくいものの、危険とは反対方向に
逃げるのだから、その場にいるハエをたたくと見せつつ、その逃げる方向にシフト
して仕留めればよいということでしょう。
記事は誤訳とはいえないものの、ピントが少しずれているようです。
【No_1:7月の新ネタ】======================================================
[リファレンス/ActionScript 3.0新規情報]
■Flash FN0807001「LoaderInfoクラス」
<http://www.fumiononaka.com/TechNotes/Flash/FN0807001.html>
LoaderInfoクラスは、読込まれるSWFファイルやイメージファイル(JPEGやGIF、PNG
形式)についての情報を提供します。提供される情報としては、ロードの進行状況や
ローダーと読込まれるコンテンツそれぞれのURL、メディアの総バイト数やメディア
に規定された高さと幅などがあります。
■Flash FN0807002「DisplayObjectContainer.mouseChildrenプロパティ」
<http://www.fumiononaka.com/TechNotes/Flash/FN0807002.html>
DisplayObjectContainerインスタンスの子がマウスに対応するかどうかを決めます。
オブジェクトがマウスに対応すると、ユーザーはマウスを使ってオブジェクトとの
インタラクションが可能になります。デフォルト値はtrueです。
【No_2:書きもの】==========================================================
[雑誌・書籍・Web記事など]
■gihyo.jp「ActionScript 3.0で始めるオブジェクト指向スクリプティング」
・第16回「三角関数を使った楕円軌道のアニメーション」
<http://gihyo.jp/dev/serial/01/as3/0016>
三角関数のcosとsin関数は、角度の変化に対して値がバネや波の動きのように増減
します。これらの関数を使って、円や楕円軌道を描くアニメーションをつくります。
【No_3:セミナー】==========================================================
[JaGra PROFESSIONAL DTP & WEB SCHOOL]
■Flash ActionScript中級/ActionScript 2.0
<http://www.jagra.or.jp/school/web/actionscript_advance.html>
マウスに遅れて追いかけるアニメーションやマウスの方向を向くアニメーションと
いったインタラクティブなムービーを素材として、ActionScriptの基本的な考え方
やスクリプトの組み立て方を学習します。
【日 時】2008年9月24日水曜日〜25日木曜日6時間×2日全12時間
【参加費用】39,900円
【場 所】社団法人日本グラフィックサービス工業会
【募集人数】10名
【テキスト】『モーショングラフィックスで学ぶActionScript − Flash MX −』
[m-School]
■ActionScript 3.0 基礎から実践へのStep
<http://m-school.biz/training/actionscript3.0_step.htm>
MovieClipの取り扱いなどActionScriptの復習からスタートし、ActionScript 3.0の
基本項目を学習します。Flashの基本機能を習得済みで、初歩的なプログラム経験の
ある方であれば、ActionScript 1.0や2.0を知らない方でも無理なく習得できます。
さらにActionScript 3.0の基礎事項ばかりでなく、実践で役立つテクニックも学習
しますので、実際のコンテンツ制作でどのように活用すればよいか知ることもでき
ます。
【日 時】2008年9月29日月曜日〜30日火曜日6時間×2日全12時間
【参加費用】63,000円
【場 所】m-School
【募集人数】10名
【テキスト】オリジナル教材
[ROKUNANA WORKSHOP OF MEDIA DESIGN]
■ActionScript 3.0で始めるオブジェクト指向スクリプティング
− スクリプト初心者Day
<http://event.67.org/summercamp/nonaka1/>
簡単なスクリプトは書いたことがあるという入門者を対象とします。スクリプトに
よるアニメーションを題材にActionScript 3.0の基本と処理の組立て方・考え方を
解説します。おもな学習項目としては、変数と関数、イベントリスナー、条件判定
といったスクリプトの構文に加え、日付と文字の操作やインスタンスと座標の扱い
などが含まれます。ActionScript 3.0はもちろん、2.0の知識も前提とはしません。
【日 時】2008年9月17日水曜日全4時間
【参加費用】12,800円
【場 所】T's東宝ビル別館ホール204(渋谷駅東口徒歩5分)
【募集人数】30名
【テキスト】『ActionScript 3.0プロフェッショナルガイド』
■ActionScript 3.0で始めるオブジェクト指向スクリプティング
− 経験者Day
<http://event.67.org/summercamp/nonaka2/>
ActionScript 3.0の基本的なスクリプティングの知識をもった初級者が対象です。
3D風に回転するアニメーションのスクリプトから始め、クラスの定義やイベントの
配信までデザイン(設計・構成)を展開していきます。三角関数や数学的な考え方、
クラスの応用についても触れます。変数や関数、条件判定、イベントリスナーと
いった基礎事項は、学習されていることが前提です。
【日 時】2008年9月18日木曜日全4時間
【参加費用】12,800円
【場 所】T's東宝ビル別館ホール204(渋谷駅東口徒歩5分)
【募集人数】30名
【テキスト】『ActionScript 3.0プロフェッショナルガイド』
【No_4:よろず新情報】======================================================
[Adobeネタ]
■akihiro kamijo「ECMAScript Harmony/ES3.1 と ActionScript」
<http://weblogs.macromedia.com/akamijo/archives/2008/08/ecmascript_harm.html>
ECMA TC39のアナウンスによると、ECMAScript 4に関する標準化の作業を中止して、
ECMAScript 3.1に集中することが決定されたそうです。
■Adobe Edge「Flash OOP for ActionScript 3.0 イベントレポート」
<http://www.adobe.com/jp/newsletters/edge/august2008/Fcontent/index.html>
8月14日に開催された『FlashOOP for ActionScript3.0』書籍発売記念イベント
のレポートが掲載されました。
[FLASH-Japanネタ]<http://www.flash-jp.com/>
■hitTest判定が出来ているのに、onReleaseが実行されない
<http://www.flash-jp.com/modules/newbb/viewtopic.php?viewmode=flat&topic_id=7936&forum=8>
ボタン用のマウスイベントは、ひとつのインスタンスが排他的に受取ります。前面
あるいは親のインスタンスは、別の方法でイベントを取得しなければなりません。
FAQに属する質問でしょう。
■インスタンスの破棄
<http://www.flash-jp.com/modules/newbb/viewtopic.php?viewmode=flat&topic_id=7939&forum=20>
インスタンスの消滅は、ガベージコレクションにしたがいます。スレッド内では、
いくつかの参考ドキュメントを掲げています。
最近、mixiの[Flash]コミュニティでも、ガベージコレクションについて質問があり
ました。
<http://mixi.jp/view_bbs.pl?id=34176580&comm_id=580>
■サウンドのフェードアウト
<http://www.flash-jp.com/modules/newbb/viewtopic.php?viewmode=flat&topic_id=7961&forum=8>
イベントハンドラメソッドや関数を削除することについての議論です。
■Tweenクラスの挙動について
<http://www.flash-jp.com/modules/newbb/viewtopic.php?viewmode=flat&topic_id=7974&forum=6>
実際には、MovieClipの回転と大きさの変更を組合わせた場合の動作についてです。
MovieClip._width/MovieClip._heightとMovieClip._xscale/MovieClip._yscaleでは
結果が異なるようです。
【No_5:スクリプト覚え書き】================================================
■クロージャについて
ActionScript 3.0の関数(メソッド)では、ローカル変数や引数以外のthisを含めた
参照はその定義時に決まります。このようなデータ構造を、「クロージャ」と呼ぶ
ことがあります([ヘルプ]の[ActionScript 3.0のプログラミング] > [ActionScript
言語とシンタックス] > [関数] > [関数のスコープ]参照)。関数(メソッド)本体内
のthis参照も、それが定義されたインスタンスに定まります。
ですからthis参照は、Function.apply()メソッドの第1引数で変えることも基本的に
できません(つまり、第1引数に指定するできるのはthisのみになります)。
ただし例外として、名前のない関数があります。名前のない関数は、それを変数や
プロパティに代入したとき、その変数またはプロパティの参照先がthis参照となり
ます。たとえば、つぎのフレームアクションでは、タイムライン変数に設定された
関数からはthisがそのタイムラインになり、MovieClipインスタンスをターゲットに
呼出した関数内では設定されたインスタンスがthisとして参照されます
var my_mc:MovieClip = new MovieClip();
var name_str:String = "main";
my_mc.name_str = "my_mc";
var xTest:Function = function ():void {
trace([name_str, this.name_str]);
};
my_mc.xTest = xTest;
// [1]直接関数を呼出し
xTest(); // 出力: main,main
// [2]MovieClipインスタンスに設定した関数を呼出し
my_mc.xTest(); // 出力: main,my_mc
名前のない関数については、以下のフレームアクションのようにFunction.apply()
メソッドを使ってthis参照が変えられます。
var my_mc:MovieClip = new MovieClip();
var name_str:String = "main";
my_mc.name_str = "my_mc";
var xTest:Function = function ():void {
trace([name_str, this.name_str]);
};
xTest.apply(my_mc) // 出力: main,my_mc;
なお、関数(メソッド)とthisの参照先については、以下が参考になるでしょう。
「関数・メソッドとthis」
<http://www.fumiononaka.com/TechNotes/Flash/FN0803001.html>
akihiro kamijo「thisとクロージャ」
<http://weblogs.macromedia.com/akamijo/archives/2006/02/this.html>
FLASH-japan「関数クロージャ内のthis参照について」
<http://www.flash-jp.com/modules/newbb/viewtopic.php?viewmode=flat&topic_id=7740&forum=20>
*/
//=========================================================================
var publisher:Object = {
name:野中 文雄,
mailto:fumio@mx10.ttcn.ne.jp,
web:<http://www.FumioNonaka.com>,
credit:2003-2008 (c) Fumio Nonaka all rights reserved.
}; //_____________________________________________________________________
if (wantToUnsubscribe) { // メールマガジンの購読中止は
// つぎのURLでお手続きください
var url:String = "http://www.FumioNonaka.com/Magazine/";
var request:URLRequest = new URLRequest(url);
navigateToURL(request);
}



