2010年度 インタラクティブ映像制作実習II(1)
[Prev] [Home] [Next]

第4回 タイムライン制御

担当者: 斎藤進也 (saitos[at]fc.ritsumei.ac.jp)


★本日のテーマ

本日は、ActionScriptによるムービー管理の基本となる「タイムライン制御」を中心に講義を進める。
また、startDrag/stopDragメソッドやhitTestObjectメソッドなど、インタラクティブ・コンテンツを制作する上で頻繁に用いられるいくつかのメソッドについ ても言及する。



★タイムライン制御(pp.87-102)

素材ファイル →[download]

★インタラクティブ・コンテンツ作成テクニックス(1)


★ startDrag メソッド / stopDragメソッド (p.174)

素材ファイル →[download

startDrag メソッド / stopDragメソッドを用いることで、任意のオブジェクト をドラッグして移動されることが可能。 

MovieClip.startDrag(); オブジェクトのドラッグを開始する。

MovieClip.stopDrag(); オブジェクトのドラッグを終了する。



/*トマト */
this.tomato_a.addEventListener(MouseEvent.MOUSE_DOWN,drag_tomato_a);
this.tomato_a.addEventListener(MouseEvent.MOUSE_UP,drop_tomato_a);

function drag_tomato_a(e:MouseEvent){
  //ドラッグ開始
  this.tomato_a.startDrag();
}

function drop_tomato_a(e:MouseEvent){
  //ドラッグ終了
  this.tomato_a.stopDrag();
}

/* ピーマン */
this.p_man_a.addEventListener(MouseEvent.MOUSE_DOWN,drag_p_man);
this.p_man_a.addEventListener(MouseEvent.MOUSE_UP,drop_p_man);

function drag_p_man(e:MouseEvent){
  //ドラッグ開始
  this.p_man_a.startDrag();
}

function drop_p_man(e:MouseEvent){
  //ドラッグ終了
  this.p_man_a.stopDrag();
}


●重なり順のコントロール(p.161)
→ドラッグした時に、重なりが最前面になるようにする。

サンプルファイル→ [download]

DisplayObjectContainer.numChildren 表示オブジェクトコンテナ内の子オブジェクトの数を返す。

DisplayObjectContainer.setChildIndex(オブジェクト,インデックス); オブジェクトに任意のインデックス位置(順番)を割り当てる。


//トマト 
this.tomato_a.addEventListener(MouseEvent.MOUSE_DOWN,drag_tomato_a);
this.tomato_a.addEventListener(MouseEvent.MOUSE_UP,drop_tomato_a);

function drag_tomato_a(e:MouseEvent){
  //ドラッグ開始
  this.tomato_a.startDrag();

  
  var myContainer:DisplayObjectContainer = this.tomato_a.root as DisplayObjectContainer;
  var lastIndex:int = myContainer.numChildren-1; //1引くのは、index番号は0から始まるため
  myContainer.setChildIndex(this.tomato_a,lastIndex);


}

function drop_tomato_a(e:MouseEvent){
  //ドラッグ終了
  this.tomato_a.stopDrag();
}

/* ピーマン */
this.p_man_a.addEventListener(MouseEvent.MOUSE_DOWN,drag_p_man);
this.p_man_a.addEventListener(MouseEvent.MOUSE_UP,drop_p_man);

function drag_p_man(e:MouseEvent){
   var myContainer_b:DisplayObjectContainer = this.p_man_a.root as DisplayObjectContainer;
   var lastIndex_b:int =myContainer_b.numChildren-1;
   myContainer_b.setChildIndex(this.p_man_a,lastIndex_b);
   
   //ドラッグ開始
   this.p_man_a.startDrag();
}

function drop_p_man(e:MouseEvent){
  //ドラッグ終了
  this.p_man_a.stopDrag();
}



★本日の課題


近畿2府4県のうち、いずれかひとつの地図を描きなさい。
そして、地図内に印をつけなさい。

その印にマウスカーソルをあわせることで、名所・旧跡、特産物、観光・レジャースポットなど、
注目すべきスポットの情報やイラストが表示されるというインタラクティブ・コンテンツを作成しなさい。

次に、他のグループメンバーが作成した地図と、自分の地図を併せて、4県でひ とつの地図にしてください。
したがって、他のメンバーとは異なる県を選択する必要があります。また、地図 の形状などについても、議論が必要でしょう。

本日の課題は「グループ課題」です。

※ グループでの成果物に加えて、個人で作成したファイルも提出してください。

発展課題

もし出来たら、上記課題成果に替えて提出

上記課題を改造し、各県の地図をドラッグ&ドロップで動かせるようにしなさい。

ジグソーパズルのように、はじめバラバラにピースが置かれていて、それらを正 しい位置に移動させ完成させるというイメージ。


[Prev] [Home] [Next]