FumioNonaka.com Newsletter  RSSを登録する

Macromedia Flash & Directorのテクニカル情報を掲載するFumioNonaka.comから最新ヘッドラインをお知らせ。Flash ActionScriptやDirector Lingoなどスクリプトを中心としたTipsやトラブルシューティング、リファレンスなどで構成。

最新号をメルマガでお届けします    
登録 解除

規約に同意して

登録した方には、まぐまぐの公式メルマガ(無料)をお届けします。
2008/02/13

[FumioNonaka.com Newsletter: no.050]

//=========================================================================
// [FumioNonaka.com Newsletter]
//
var issue:uint = 50;  // 第50号
var published:Date = new Date(2008, 2, 13);  // Feb. 13, 2008
//=========================================================================
var index:Object = {
No_0:ActionScriptの角度の単位にラジアンと度数が混在する理由,
No_1:12月の新ネタ,
No_2:書きもの,
No_3:セミナー,
No_4:よろず新情報,
No_5:スクリプト覚え書き
};  //_____________________________________________________________________
/*
■2008年2月23日土曜日F-siteセミナー「一味違うFlashサイトの作り方」
<http://f-site.org/articles/2004/03/25003056.html>
今回はプロデューサー&ディレクターにお勧めの内容です。Flex、Flash video、
Flashサイトの共同作業と従来と一線を画したFlashサイトを制作する上で押さえて
おきたいポイントをそろえました。 
demo1:「Flex アプリ設計のワークフロー」大雅(50分)
demo2:「初めてのFlash Video」永井 勝則(50分)
demo3:「大手Flashキャンペーンサイト構築とその仕事術」サブリン(50分)

【No_0:ActionScriptの角度の単位にラジアンと度数が混在する理由】============
ActionScriptにおけるインスタンスの角度は、3.0のrotationプロパティでも度数が
使われています。また、Mathクラスの三角関数では、ラジアンが単位です。角度の
単位としてラジアンと度数が混在する理由は、ひとつには過去の経緯があります。

Mathクラスの仕様はECMAScriptにもとづき、三角関数の角度の単位にはラジアンを
用いるものとされています。他方で、インスタンスの角度を示すプロパティの値と
しては、ActionScriptが実装されるFlash 5より前から度数が使われていました。

とはいえ、ActionScript 3.0で、プロパティやメソッドの仕様を従来のバージョン
とは変えてしまうことも可能だったはずです。それでも、DisplayObject.rotation
プロパティの単位に度数を引続き使う理由は、とくに明らかにはされていません。

考えられる理由は、度数の方がアニメーションは扱いやすいことでしょう。1回転の
角度が整数では割切れない(無理数の)数値よりは、360の方が周期的な動きはつくり
やすいと思われます。とくに、360という整数は約数が多く、1から10までの整数で
割切れないのは7だけです。アニメーションでもっとも多く使われるフレームレート
の24や30も、360の約数に含まれています。

【No_1:12月の新ネタ】======================================================
[トラブルシューティング/ActionScript 3.0新規情報]
■Flash FN0712001
「TextField.appendText()で\rの含まれたテキストが正しく追加できない」
<http://www.fumiononaka.com/TechNotes/Flash/FN0712001.html>
ActionScript 3.0には、TextField.appendText()メソッドが加わりました。これは
TextField.textプロパティに設定されたテキストに、引数の文字列を追加します。
処理結果は加算後代入演算子+=と同じものの、このメソッドの方が処理効率は高く
なります。

しかし、TextField.appendText()メソッドに復帰文字"\r"の含まれた文字列を引数
にしてTextField.textプロパティを設定した場合、引数の最後の文字が正しく設定
されません。

【No_2:書きもの】==========================================================
[雑誌・書籍・Web記事など]
■gihyo.jp「ActionScript 3.0で始めるオブジェクト指向スクリプティング」
・第10回「プロパティのイージング」
<http://gihyo.jp/dev/serial/01/as3/0010>
前回の「座標の天動説と地動説」での説明の続きとして,天動説を基準とした座標
計算から始めます。そして,減速しながら目的の値に近づくいわゆるイージングの
アニメーションについて解説します。

【No_3:セミナー】==========================================================
[JaGra PROFESSIONAL DTP & WEB SCHOOL]
■Flash ActionScript中級/ActionScript 2.0
<http://www.jagra.or.jp/school/flashCS3-3.html>
マウスに遅れて追いかけるアニメーションやマウスの方向を向くアニメーションと
いったインタラクティブなムービーを素材として、ActionScriptの基本的な考え方
やスクリプトの組み立て方を学習します。
【日  時】2008年2月27日水曜日〜28日木曜日6時間×2日全12時間
【参加費用】39,900円
【場  所】社団法人日本グラフィックサービス工業会
【募集人数】10名
【テキスト】『モーショングラフィックスで学ぶActionScript  − Flash MX −』
[Adobe認定トレーニングプログラム]

■Macromedia Flash 8:Advanced Design
<http://www.m-school.biz/courses/matp_flash_advanced_design.htm>
フルFlashのWebサイトを想定したサンプルの制作実習と、ポイントの解説により、
以下の内容を習得します。
・Flash 8の新機能およびデザイン要素をActionScriptで制御する方法
・外部ソースの取り扱い
・効率的なFlashムービー設計手法
【日  時】2008年3月10日月曜日〜12日水曜日6時間×3日全18時間
【参加費用】157,500円
【場  所】m-School
【テキスト】macromedia authorized curriculum

[ROKUNANA WORKSHOP OF MEDIA DESIGN]
■ActionScript3.0を使ってみよう
<http://67.org/ws/workshop/detail/040as.html>
Flash CS3 Professionalに実装されたActionScript 3.0は、2.0とはクラスの構成や
イベントの扱いが変わり、個々のプロパティやメソッドにも細かな点で違いがあり
ます。本講座では従来のActionScript 1.0/2.0と比較しつつ、ActionScript 3.0の
新たな考え方やこれまでと異なる点を解説します。
【日  時】2008年3月28日金曜日6時間
【参加費用】29,800円
【場  所】株式会社ロクナナ
【テキスト】『Flash プロフェッショナル・スタイル』

【No_4:よろず新情報】======================================================
[FLASH-Japanネタ]<http://www.flash-jp.com/>
■classからrootの変数へアクセスしたい
<http://www.flash-jp.com/modules/newbb/viewtopic.php?viewmode=flat&topic_id=7261&forum=20>
表示リストに加わっていないインスンスからは、DisplayObject.rootプロパティに
アクセスすることはできません。

■リンゲージしたMCのタイムライン上にあるMCの制御
<http://www.flash-jp.com/modules/newbb/viewtopic.php?viewmode=flat&topic_id=7278&forum=20>
ActionScript 3.0では、MovieClip.gotoAndStop()メソッドを実行した直後は、まだ
移動先フレームのインスタンスは初期化されないようです。

■XMLConnector使用せずDataGrid表示
<http://www.flash-jp.com/modules/newbb/viewtopic.php?viewmode=flat&topic_id=7289&forum=6>
XMLデータからノードテキストの文字列を正しく取出していないため、スクリプトが
意図どおりに動かないというご質問はときおり見かけます。FAQとしてどこかに掲載
しようかと思いつつも、ActionScript 3.0では処理がもっと簡単になるので、若干
意欲が減退しています。

■外部swfをステージに読み込んでフレームを操作する方法
<http://www.flash-jp.com/modules/newbb/viewtopic.php?viewmode=flat&topic_id=7291&forum=20>
ActionScript 3.0では、DisplayObjectクラスのプロパティから取得した参照を使用
して、タイムラインのプロパティ(変数)やメソッド(関数)にアクセスするためには、
その参照をキャストしなければならない場合が少なくありません。

参考:「rootプロパティでメインタイムラインの関数にアクセスできない」
<http://www.fumiononaka.com/TechNotes/Flash/FN0707001.html>

■マスクについて
<http://www.flash-jp.com/modules/newbb/viewtopic.php?viewmode=flat&topic_id=7304&forum=6>
MovieClip.cacheAsBitmapプロパティをtrueに設定すると、インスタンス内に置いた
マスクが親と一緒に動かなくなるようです。

■インスタンスについて
<http://www.flash-jp.com/modules/newbb/viewtopic.php?viewmode=flat&topic_id=7310&forum=8>
trace()関数は引数の文字列表現を[出力]するため、その引数のtoString()メソッド
を呼出します。デフォルトはObject.toString()メソッドになります。ただ中には、
Flash Playerが内部的に直接文字列を返しているクラス(MovieClipなど)もあるよう
です(ActionScript 2.0/1.0の場合)。

■wmode= "transparent"のMACのバグについて
<http://www.flash-jp.com/modules/newbb/viewtopic.php?viewmode=flat&topic_id=7313&forum=11>
wmode属性を本来の用途と違う目的で使うことは、お勧めしません。

■レイヤーの階層について。(レイヤーの移動?)
<http://www.flash-jp.com/modules/newbb/viewtopic.php?viewmode=flat&topic_id=7340&forum=8>
これもFAQに属します。レイヤーの情報はSWFに書出されません。ActionScriptは、
Flash Player上のSWF内で動作しますので、情報のないものはコントロールの対象に
はできません。

■飛ばされたフレームに配置したMCのスクリプトが動作する(ダイナミックテキスト?)
<http://www.flash-jp.com/modules/newbb/viewtopic.php?viewmode=flat&topic_id=7347&forum=8>
ActionScript 3.0で、MovieClip.gotoAndStop()メソッドで飛ばしたフレームに配置
したインスタンスが、動作したり、アクセス可能になってしまうという問題です。

【No_5:スクリプト覚え書き】================================================
■クラスプロパティの初期値にプライベートクラスのインスタンスが設定できない
ActionScript 3.0のクラス定義では、packageステートメントブロックの外に、別の
クラスを定義することができます。そのクラスには、他のクラスからアクセスする
手段がありません。したがって、プライベートなクラスとして利用できます。

ところがこのプライベートなクラスには、ひとつ確認されている問題があります。
クラス(static)プロパティの初期値に、ブライベートクラスのインスタンスを代入
しようとすると、ランタイムエラーが発生します。

// Flashムービー(FLA)ファイル
// フレームアクション
var obj:PrivateClassTest = new PrivateClassTest();

// ActionScript 3.0クラス定義ファイル: PrivateClassTest.as
package {
  public class PrivateClassTest {
    // trace(PrivateClass); // 確認用
    static private var privateObject:PrivateClass = new PrivateClass();
    public function PrivateClassTest() {}
  }
}
// プライベートクラス
class PrivateClass {
  public function PrivateClass() {}
}

クラス(static)プロパティは、クラスのロード時に1度初期化されます。その初期値
を得るために他のクラスにアクセスしている場合には、そのアクセス先のクラスも
初期化され、値が返されます。

けれどプライベートクラスは、メインのクラスプロパティでアクセスしていても、
初期化がメインクラスの後に行われるようです。そのために、クラスプロパティで
参照したとき、プライベートクラスが初期化されておらず、nullが返されるため、
メンバー(プロパティやメソッド)が存在しないものとして扱われてしまうのです。

なお、上記スクリプトでクラスプロパティを宣言する前の、コメントアウトされて
いるtrace()関数のステートメントを有効にすれば、クラスPrivateClassへの参照が
nullで返されることを確認できます。
*/
//=========================================================================
var publisher:Object = {
name:野中 文雄,
mailto:fumio@mx10.ttcn.ne.jp,
web:<http://www.FumioNonaka.com>,
credit:2003-2007 (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);
}
最新号をメルマガでお届け
登録 解除

規約に同意して

登録した方には、まぐまぐの公式メルマガ(無料)をお届けします。

最近の記事

上へ戻る