モーショングラフィックスで学ぶActionScript − Flash MX −

Column: 一連の値を繰り返す

ID: FB0206001 Page: 224/Line: Last


[p.224のスクリプト]

// ボタン用MovieClipの第1フレームアクション
this.onRelease = function() {
  lFrames = ["Photo_01", "Photo_02", "Photo_03", "Photo_04", "Photo_05", "Photo_06", "Photo_07"];
  nNextFrame = lFrames[++nCount%7];   // つぎの移動先フレームラベル名を取り出す
  _root.gotoAndStop(nNextFrame);
};


補足

このフレームアクションでは、 「%」演算子の割る方の数値は7としています。この値は、配列に格納した要素の個数です。配列の要素数、正確には配列の長さは「Array.length」プロパティで調べることができました(「8.1 重なり判定(MovieClip.hitTest)と配列」の「(2)配列」)。このプロパティを使えば、配列の要素数が変わっても、ステートメントを書直す必要がなくなります。つまり、より汎用性が高まります。

また、配列は、マウスクリックするたびに作成する必要はないでしょう。配列を設定するのは、イベントハンドラメソッドの定義の前に1度行えば足ります。これらの修正を加えると、フレームアクションはつぎのように書替えることができます。

// ボタン用MovieClipの第1フレームアクション
lFrames = ["Photo_01", "Photo_02", "Photo_03", "Photo_04", "Photo_05", "Photo_06", "Photo_07"];
this.onRelease = function() {
  nNextFrame = lFrames[++nCount%lFrames.length];   // つぎの移動先フレームラベル名を取り出す
  _root.gotoAndStop(nNextFrame);
};

_____

作成者: 野中文雄
作成日: 2002年6月29日


Copyright © 2001-2017 Fumio Nonaka.  All rights reserved.