FumioNonaka.com Newsletter  RSSを登録する

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

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

規約に同意して

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

[FumioNonaka.com Newsletter: no.065]

//=========================================================================
// [FumioNonaka.com Newsletter]
//
var issue:uint = 65;  // 第65号
var published:Date = new Date(2009, 5, 1);  // May 1, 2009
//=========================================================================
var index:Object = {
No_0:統計分析は解釈が命,
No_1:3月の新ネタ,
No_2:書きもの,
No_3:セミナー,
No_4:よろず新情報,
No_5:スクリプト覚え書き
};  //_____________________________________________________________________
/*
■Try the ActionScript 3D/Flash CS4で学ぶ3次元表現→【No_3:セミナー】
<http://event.67.org/matrix3d/>
2009年06月19日金曜日13:00〜16:15 (4,800円/学生料金2,400円)
Flash CS4から搭載された3次元表現の機能を、ActionScript 3.0で制御するための
入門講座です。難しい印象の3次元関連クラスですが、この講座をきっかけに自分の
表現ツールに取り入れてみましょう!

【No_0:統計分析は解釈が命】================================================
今回も、また統計ネタです。記事のまとめ方もさることながら、もとの調査分析も
首を傾げたくなる内容といえます。
<http://www.benesse.jp/berd/center/open/report/daigaku_jittai/hon/index.html>

時事通信(09/04/07)
「授業出席も、積極性乏しく=趣味、友人を大切に−大学生の意識・民間調査」:
<http://www.jiji.com/jc/c?g=soc_30&rel=j7&k=2009040700048>
「授業にはまじめに出席する一方、授業以外で勉強する大学生は5人に1人しか
いないことが7日、ベネッセ教育研究開発センター(東京)の調査で分かった。『努力
は報われる』と考えるのは半数に満たず、積極性に欠ける傾向もうかがえる。」

具体的な数字は、記事にはつぎのように挙げられています。

「84.4%が『仕事で社会に貢献することは大切』と考えるが、『努力をすれば
報われる』は42.8%、『自分は積極的』は38.8%にすぎず、仕事は大切と考える
一方、努力や積極性の認識に乏しい姿が浮かび上がった。」

しかし、実際の調査に書かれていたあとのふたつの質問は、「日本は、努力すれば
むくわれる社会だ」と「自分は何ごとにおいても積極的だと思う」でした。
<http://www.benesse.jp/berd/center/open/report/daigaku_jittai/hon/daigaku_jittai_5_1_1.html>

前者が訊ねているのは、日本の社会に対する認識です。果たして、どれだけの大人
たちが、この質問に対して自信をもって肯定できるでしょう。できないとしたら、
それは学生ではなく、大人の側の問題といえます。

また、後者を否定する命題は、「自分には積極的でない部分もある」です。これを
「積極性に欠ける」(記事)とか「あまり積極的ではない」(調査)と解釈する国語力
が疑われます。4割近くの大学生が、「自分は何ごとにおいても積極的だ」と答えた
というのです。むしろ「積極性がある」と感じないでしょうか。

【No_1:3月の新ネタ】======================================================
[リファレンス新規情報]
■Flash FN0903001「Graphics.drawTriangles()メソッド」
<http://www.fumiononaka.com/TechNotes/Flash/FN0903001.html>
組合わせた三角形に対して描画を行います。ビットマップを変形させることができ、
3次元を表現するために用いられることが多いです。drawTriangles()メソッドは、
現在の塗りあるいはビットマップの塗りを、(u, v)座標群を用いて三角形の各面に
マッピングします。

[ドキュメント正誤表]
■「Flash CS4 Professionalヘルプ」
<http://www.fumiononaka.com/TechNotes/Flash/Errata_HelpFlashCS4.html>
現在日本語版のFlash CS4 Professionalヘルプには、コメントが加えられないよう
です。その対応もあって、取急ぎページを作成しました。

【No_2:書きもの】==========================================================
[雑誌・書籍・Web記事など]
■Adobeデベロッパーセンター
「三角形分割によるテクスチャマッピング − Graphics.drawTriangles()メソッド 
Part 2」
<http://www.adobe.com/jp/devnet/flash/articles/graphics_draw_triangles_part2.html>
前回のPart 1では、Graphics.drawTriangles()メソッドに渡す3つの引数について、
基本的な指定の仕方を説明しました。今回のPart 2は、簡単なサンプルを作成して、
Graphics.drawTriangles()メソッドによりテクスチャを動的にマッピングします。

■gihyo.jp「ActionScript 3.0で始めるオブジェクト指向スクリプティング」
・第22回「MovieClipシンボルにクラスを定義する」
<http://gihyo.jp/dev/serial/01/as3/0022>
MovieClipのシンボルにクラスを定義すると、シンボルのタイムラインや配置された
エレメントなどのアセットが、そのクラスに関連づけられます。すると、MovieClip
シンボルを[ライブラリ]からステージへとドラッグ&ドロップするだけで、クラスに
定義した動作が実現されます。

・第23回は、「クラスのデザインとループ処理」
<http://gihyo.jp/dev/serial/01/as3/0023>
今回はまずEllipticMotionクラスの処理について、今後の拡張も考えてデザインを
整理しています。その後、タイムラインに複数のインスタンスを配置するといった
繰返し処理のテクニックをご紹介します。

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

■基礎から学ぶActionScript 3.0 〜ステップ1
<http://www.jagra.or.jp/school/web/actionscript3_step1.html>
簡単なスクリプトは書いたことがある、という初学者を対象とした基礎講座です。
スクリプトによるアニメーションを題材にして、ActionScript 3.0の基本と処理の
組立て方・考え方を解説します。おもな学習項目としては、変数と関数、イベント
リスナー、および日付と文字の扱いなどが含まれます。ActionScript 2.0の知識は
前提とはしません。
【日  時】2009年5月28日木曜日6時間
【参加費用】21,000円
【場  所】社団法人日本グラフィックサービス工業会
【募集人数】10名
【テキスト】『ActionScript 3.0プロフェッショナルガイド』

■基礎から学ぶActionScript 3.0 〜ステップ2
<http://www.jagra.or.jp/school/web/actionscript3_step2.html>
ActionScript 3.0の基礎の学習を終えた初級者が対象です。MovieClipインスタンス
をインタラクティブにアニメーションさせるムービーを作成しながら、座標と座標
空間の扱い、条件判定、配列やObjectの操作などについて学びます。関数を基本に
すえた処理のパーツ化についても、実習をとおして理解していただきます
【日  時】2009年5月29日金曜日6時間
【参加費用】21,000円
【場  所】社団法人日本グラフィックサービス工業会
【募集人数】10名
【テキスト】『ActionScript 3.0プロフェッショナルガイド』

■基礎から学ぶActionScript 3.0 〜ステップ3
<http://www.jagra.or.jp/school/web/actionscript3_step3.html>
ActionScript 3.0の基本的なスクリプティングの知識をもった初級者が対象です。
3D風に回転するアニメーションのスクリプトを出発点に、クラスの定義やイベント
の配信までデザイン(設計・構成)を展開していきます。三角関数や数学的な考え方、
クラスの応用についても触れます。変数や関数、条件判定、イベントリスナーなど
基礎事項は、学習されていることが前提です。
【日  時】2009年6月25日木曜日〜26日金曜日6時間×2日全12時間
【参加費用】54,600円
【場  所】社団法人日本グラフィックサービス工業会
【募集人数】10名
【テキスト】『ActionScript 3.0プロフェッショナルガイド』

[ROKUNANA WORKSHOP OF MEDIA DESIGN]
■Try the ActionScript 3D/Flash CS4で学ぶ3次元表現
<http://event.67.org/matrix3d/>
Flash CS4 Professionalには、3次元空間の表現力が加わりました。ActionScript 
3.0にも、Flash Player 10対応のこうした機能を実現する、つぎのようなクラスや
メソッドが備わっています。

・Matrix3Dクラス
・Vecotor3Dクラス
・Vecotorクラス
・Graphics.drawTriangles()メソッド

今回のセミナーでは、これらのクラスやメソッドの使い方と、その前提となる3次元
座標空間の考え方について、サンプルスクリプトを示しながら解説します。また、
ベクトルや行列などの数学的な基礎にも触れる予定です。

【日  時】2009年6月19日金曜日13:00〜16:15 (開場12:30)
【参加費用】4,800円/学生料金2,400円
【場  所】TKP代々木ビジネスセンター2号館B1 (JR代々木駅徒歩1分)
【募集人数】60名

■応用力に差をつけるActionScript数学講座
<http://67.org/ws/workshop/detail/061as.html>
スクリプトでアニメーションを作成しようとするとき、数学や物理学の知識がよく
必要となります。そんなとき、すぐに公式を探そうとする人が少なくありません。
けれど、都合のいい公式がいつも見つかるとはかぎりません。また、単純に公式を
適用しただけでは、意図した動作ができないこともあります。

目的を達するには、動きを再現するうえで重要な部分とそうでない部分を見極めて
分析する必要があるのです。単純に公式を覚えて適用するだけでなく、その原理や
考え方を理解して、応用しなければなりません。

本講座は、アニメーションを扱ううえで重要な座標空間に関わる、数学の基本的な
項目を学習します。とくに後半は、高校文系の数学の知識では理解しにくい行列と
MatrixおよびMatrix3Dクラスについて解説します。

スクリプティングよりも、数学的な説明が中心です。スクリプトは、ActionScript 
3.0を使い、イベントリスナーの扱いを理解していることが前提となります。
【日  時】2009年5月10日日曜日6時間
【参加費用】29,800円
【場  所】株式会社ロクナナ
【募集人数】6名
【テキスト】『ActionScript 3.0プロフェッショナルガイド』

【No_4:よろず新情報】======================================================
[FLASH-Japanネタ]<http://www.flash-jp.com/>
■enabled、mouseEnabledが効かない
<http://www.flash-jp.com/modules/newbb/viewtopic.php?viewmode=flat&topic_id=8515&forum=20>
子のインスタンスが自身に対するマウスイベントを直接受取らないようにするには、
InteractiveObject.mouseEnabledプロパティをfalseにします。子のインスタンスを
まとめて設定したいときは、DisplayObjectContainer.mouseChildrenプロパティが
利用できます。

■フレーム移動をしてすぐ、クラスを読み込むと
<http://www.flash-jp.com/modules/newbb/viewtopic.php?viewmode=flat&topic_id=8525&forum=20>
フレームアクションの処理対象は、当該フレームに存在するインスタンスにかぎる
ことをお勧めします。

■数値と数値として受け取ってくれず、足し算が出来ない
<http://www.flash-jp.com/modules/newbb/viewtopic.php?viewmode=flat&topic_id=8564&forum=6>
変数宣言にデータ型を指定した効果は、ActionScript 2.0と3.0とでは異なります。

■曲線移動
<http://www.flash-jp.com/modules/newbb/viewtopic.php?viewmode=flat&topic_id=8568&forum=8>
2次曲線にもとづくアニメーションの基本です。座標の最小単位などの細かな点にも
触れています。

【No_5:スクリプト覚え書き】================================================
■ワイヤーフレームの立方体をインタラクティブに回す
6月19日のイベント「Try the ActionScript 3D/Flash CS4で学ぶ3次元表現」向けに
Vector3Dクラスを解説するため書いてみたサンプルです。Flash CS4 Professional
のフレームにコピー&ペーストするだけで動きます。マウスポインタの位置に応じて
ワイヤーフレームの立方体が回転します。なお、イベントでは、もっとシンプルな
例から説明するつもりです。
<http://event.67.org/matrix3d/>

var nUnit:Number = 100 / 2;
var nSensitivity:Number = 0.2;
var targetSprite:Sprite = new Sprite();
var vertices:Vector.<Vector3D> = new Vector.<Vector3D>();
var indices:Vector.<Vector.<uint>> = new Vector.<Vector.<uint>>();
var focalLength:Number = nUnit * 10;
addChild(targetSprite);
targetSprite.x = stage.stageWidth / 2;
targetSprite.y = stage.stageHeight / 2;
vertices.push(new Vector3D(nUnit, nUnit, -nUnit));
vertices.push(new Vector3D(nUnit, nUnit, nUnit));
vertices.push(new Vector3D(-nUnit, nUnit, nUnit));
vertices.push(new Vector3D(-nUnit, nUnit, -nUnit));
vertices.push(new Vector3D(nUnit, -nUnit, -nUnit));
vertices.push(new Vector3D(nUnit, -nUnit, nUnit));
vertices.push(new Vector3D(-nUnit, -nUnit, nUnit));
vertices.push(new Vector3D(-nUnit, -nUnit, -nUnit));
indices.push(Vector.<uint>([0, 1, 2, 3, 0]));
indices.push(Vector.<uint>([4, 5, 6, 7, 4]));
indices.push(Vector.<uint>([0, 4]));
indices.push(Vector.<uint>([1, 5]));
indices.push(Vector.<uint>([2, 6]));
indices.push(Vector.<uint>([3, 7]));
addEventListener(Event.ENTER_FRAME, xRotate);
function xRotate(eventObject:Event):void {
	var speed:Point = new Point( -  targetSprite.mouseX * nSensitivity,targetSprite.mouseY * nSensitivity);
	xTransform(vertices, speed);
	var projectedPoints:Vector.<Point> = xGetProjectedPoints(vertices);
	xDraw(projectedPoints, indices);
}
function xGetProjectedPoints(myVertices:Vector.<Vector3D>):Vector.<Point> {
	var nLength:uint = myVertices.length;
	var projectedPoints:Vector.<Point> = new Vector.<Point>();
	for (var i:int = 0; i<nLength; i++) {
		var myVector:Vector3D = myVertices[i];
		var cloneVector:Vector3D = myVector.clone();
		cloneVector.w = focalLength/(focalLength+myVector.z);
		cloneVector.project();
		projectedPoints.push(new Point(cloneVector.x, cloneVector.y));
	}
	return projectedPoints;
}
function xDraw(projectedPoints:Vector.<Point>, indices:Vector.<Vector.<uint>>):void {
	var myGraphics:Graphics = targetSprite.graphics;
	var nLength:uint = indices.length;
	myGraphics.clear();
	myGraphics.lineStyle(1, 0x000000);
	for (var i:int = 0; i<nLength; i++) {
		var index:Vector.<uint> = indices[i];
		var nLength2:uint = index.length;
		var j:int = 0;
		var myPoint:Point = projectedPoints[index[j]];
		myGraphics.moveTo(myPoint.x, myPoint.y);
		for (j = 1; j<nLength2; j++) {
			myPoint = projectedPoints[index[j]];
			myGraphics.lineTo(myPoint.x, myPoint.y);
		}
	}
}
function xTransform(myVertices:Vector.<Vector3D>, speed:Point):void {
	var myMatrix:Matrix3D = new Matrix3D();
	myMatrix.appendRotation(speed.x, Vector3D.Y_AXIS);
	myMatrix.appendRotation(speed.y, Vector3D.X_AXIS);
	var nLength:uint = myVertices.length;
	for (var i:int = 0; i<nLength; i++) {
		myVertices[i] = myMatrix.transformVector(myVertices[i]);
	}
}
*/
//=========================================================================
var publisher:Object = {
name:野中 文雄,
mailto:fumio@mx10.ttcn.ne.jp,
web:<http://www.FumioNonaka.com>,
credit:2003-2009 (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);
}
最新号をメルマガでお届け
登録 解除

規約に同意して

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

最近の記事

上へ戻る