第五章 外部ファイルの読み込み状況を取得する - 3

サムネイルのランダムフェードイン

最後に9枚のサムネイルが、ランダムにフェードインするようにします。

前ページで、mcloader.asに記述したonLoadCompleteイベントハンドラメソッド内に、下図の30行目〜40行目までのコードを追記します。

mcloader.asに追記するコード

  • 2つ親のインスタンス名がthumbnail_mcの場合を条件に設定(30行目)
  • 変数_thumbnailに、親のインスタンス(pict0〜8)を代入(31行目)
  • 変数_thumbnailのload_timeプロパティに、現在の経過時間を代入(32行目)
  • 変数_thumbnailのwait_timeプロパティに、0〜1000までの乱数をセット(33行目)
  • 変数_thumbnailのイベントハンドラメソッドを定義(35行目)
  • 待機時間が過ぎていた場合、1フレームから再生(36〜37行目)
  • deleteでonEnterFrameイベントハンドラを削除(38行目)

読み込んだ写真がサムネイル用の写真の場合は、読み込み時間と、待機時間をセットして、待機時間を過ぎたら1フレームから再生するようにしています。待機時間は乱数になるため、9枚の写真で別々の待機時間となり、ランダムに再生される仕組みになります。

インスタンスへのショートカットの作成

31行目では、変数_thumbnailに、_mc._parentへのショートカットの役割を持たしています。_mc._parentは、thumbnail_mcの中に配置されたpict0〜pict8のいずれかのインスタンスになります。

変数_thumbnailに、_mc._parentを代入することにより、_thumbnailで_mc._parentへアクセスできるようになります。このように、変数にインスタンスへのショートカットの役割を持たせることで、コードが短くすることができます。

deleteでonEnterFrameイベントハンドラの削除

イベントハンドラメソッドで、enterFrameイベントに割り当てた処理は、deleteで削除することができます。できるだけ無駄な処理をさせないように、不要な場合は削除します。

これで完成です。