こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

ノイズ画面を挟みたい

FLASH でタイムライン中にアクションスクリプトを
挟む方法について教えてください。

全部で120フレームの48-72フレームの間だけ
下記のアクションスクリプトでノイズ画面を表示したいと思っています。

ノイズのASについては、大体理解できますが、
FLASHの使い方がわかっていません。

下記アドレスのサンプルファイルを実行すると正常に表示されますが
自分で一から、新規ファイルを作って、1フレーム目にスクリプトをコピペしても
未定義である可能性が高いメソッド:createEmptyMovieClip
未定義のプロパティ:onEnterFrame
の2つのエラーが出ています。


大変初歩的な質問だと思うのですが、
サンプルとの違いも見つけられず・・・
申し訳ありませんが、教授お願い致します。


サンプルファイル
http://hakuhin.jp/download/as1/bitmap_data_08_fla08_as1.fla


//スクリプト
var bmpData = new flash.display.BitmapData(320, 220, true, 0xFF000000);

// ムービークリップに配置
var mc = createEmptyMovieClip("empty", this.getNextHighestDepth());
mc.attachBitmap(bmpData, 0, true, 0xFFFFFFFF);
mc._x = 0;
mc._y = 0;

onEnterFrame = function () {
// ランダムノイズを生成
bmpData.noise(Math.floor(Math.random()*10000), 0, 255, 0x07, false);
};

投稿日時 - 2012-01-30 04:43:00

QNo.7274773

すぐに回答ほしいです

質問者が選んだベストアンサー

> 自分で一から、新規ファイルを作って、
> 1フレーム目にスクリプトをコピペしても
> 未定義である可能性が高いメソッド:createEmptyMovieClip
> 未定義のプロパティ:onEnterFrame
> の2つのエラーが出ています。

それはバージョンが違うからでしょう?

参考にされたFLAファイルは
そのファイル名(…fla08_as1.fla)を見ればわかりますが
「Flash 8」で作られた「ActionScript 1.0」でのサンプルです。
(ActionScript 1.0 と 2.0 は互換性があるので ActionScript 2.0 のパブリッシュ設定でも動作します。)

試しに「Flash CS4」 で
「ActionScript 3.0」設定のドキュメントを新規で作成し
参考にされたスクリプトを フレーム1 に貼り付けてパブリッシュしようとすると
書かれていらっしゃるようなエラーが出ました。

ですからおそらく
質問者さんは Flash CS3 以上をお持ちで
ActionScript 3.0 パブリッシュ設定のドキュメントに
スクリプトをコピペされたのだと思います。

参考にされたFLAファイルのスクリプトを使う場合は
Flash でドキュメントを新規で作成するときに
Flashファイル(AS2.0)
を選ぶかもしくは
「ファイル」→「パブリッシュ設定」で「スクリプト」の欄を
ActionScript 2.0(または 1.0) に設定する必要があります。
(「パブリッシュ設定」の「スクリプト」の欄はバージョンによって存在する場所が違うため,詳しくは書き(書け)ません。)
(ActionScript 3.0 と 2.0 以下は互換性がないので必ず ActionScript 2.0 以下のパブリッシュ設定にする必要があります。)
(また同じファイルで ActionScript 3.0 と 2.0 以下との混在はできません。)

とにかく『Flash で最も重要なのは バージョン!』です。
バージョン抜きで話は進められませんし
バージョンの考慮抜きで作成はできません。



=//=//=//=//=//=//=//=//=//=//=

というわけで
参考にされたFLAファイルのスクリプトを使う場合は
パブリッシュ設定 で ActionScript 2.0 以下に設定する必要があります。
また上記では Flash Player について触れていませんが
パブリッシュ設定 で「Player」のバージョンを 「Flash Player 8」以上設定する必要があります。

繰り返しますが『Flash で最も重要なのは バージョン!』です。

そういう前提条件(AS2以下 & Flash Player 8 以上)である場合において

> 全部で120フレームの48-72フレームの間だけ
> 下記のアクションスクリプトで
> ノイズ画面を表示したいと思っています。

に回答します。



フレーム48 にキーフレームを作って
そのキーフレームに参考にされたFLAファイルのスクリプトを書きます。

そして フレーム72(または73) にキーフレームを作って
そのキーフレームに次のスクリプトを書きます(コピペ可)。

//-------------------------------------------------
//onEnterFrame(毎フレーム実行するイベントハンドラメソッド)を削除
delete onEnterFrame;
//作成した「mc」を削除
mc.removeMovieClip();
//-------------------------------------------------

投稿日時 - 2012-01-30 18:31:13

お礼

的確なご回答ありがとうございます。

教えて頂いた内容をもとにAS3で実現することができました。

投稿日時 - 2012-02-03 04:37:12

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)