
FLASH CS3 ActionScript3.0での質問です。
http://oshiete1.watch.impress.co.jp/qa5140171.html
の質問を参考に
背景画像がブラウザサイズにより拡大縮小するFLASH制作を
試みたのですが、下記のエラーとなってしまいます。
TypeError: Error #1009: null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。
at sb_fla::MainTimeline/arrangeMC()
at sb_fla::MainTimeline/sb_fla::frame1()
上記URLページを参考にすこしだけ変更して
// ムービー内の拡大縮小なし
stage.scaleMode = StageScaleMode.NO_SCALE;
// 整列の基準を左上にする
stage.align = StageAlign.TOP_LEFT;
// 「back_mc」 の初期横幅と高さを変数に記録しておく
var bw:Number = back_mc.width;
var bh:Number = back_mc.height;
// MC を整列させる関数 arrangeMC を定義
function arrangeMC():void{
//
// ローカル変数 sw にステージの幅を代入
var sw:int = stage.stageWidth;
// ローカル変数 sh にステージの高さを代入
var sh:int = stage.stageHeight;
//
// 「loader_mc」をステージ中央に配置
loader_mc.x = sw/2;
loader_mc.y = sh/2;
//
// 「main_mc」をステージ中央に配置
main_mc.x = sw/2;
main_mc.y = sh/2;
//
// 「galleryback_mc」をステージ下に配置
main_mc.x = sw/2;
galleryback_mc.y = (sh-sh)+720;
//
// 「back_mc」をステージの "幅に合わせて" リサイズ
back_mc.width = sw;
back_mc.height = bh/bw*sw;
// 「galleryback_mc」をステージの "幅に合わせて" リサイズ
galleryback_mc.width = sw;
}
// 上で定義したarrangeMCを即実行 (初期表示用)
arrangeMC();
// 関数 stageOnResize を定義
function stageOnResize(evt:Event):void {
// 上で定義したarrangeMCを実行 (リサイズ時用)
arrangeMC();
}
// ステージにイベントリスナーを登録
//引数(ステージリサイズ時に実行、実行関数stageOnResize)
stage.addEventListener(Event.RESIZE, stageOnResize);
というふうにしました。
タイムライン上には
loader_mc.
main_mc
galleryback_mc(サイズ変更)
back_mc(サイズ変更)
のムービークリップを配置しています。
今回のエラーについていろいろ調べたのですが
ActionScriptよりのムービークリップ配置ではなくじかにタイムライン上に配置することが問題なのでしょうか・・・
エラー回避できませんでした・・・
なにとぞご回答よろしくお願いいたします。
またこの他に良い方法があれば是非お教え下さい。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
> ActionScriptよりのムービークリップ配置ではなくじかにタイムライン上に配置することが問題なのでしょうか・・・
それは問題ではありません.
TypeError: Error #1009:
このエラーはまだ、または既に参照できない
オブジェクト(のプロパティまたはメソッド)に
アクセスしようとしたときに起こります.(そのままですが…)
メインタイムライン1フレーム目にご質問のASを書いておられますが、
loader_mc
main_mc
galleryback_mc(サイズ変更)
back_mc(サイズ変更)
配置されているという以上のオブジェクトのうち、
いずれかが当該フレームではまだ登場していないのでは、と思います、
(ex.3フレーム目に配置)違っていたらすみません.
もし上記のようなミスだった場合は以下を試してみてください.
最小限の修正で、且つ1フレーム目より後に
オブジェクトを登場させたい場合は、
後で登場させるオブジェクト内1フレーム目に
以下のスクリプトを書きます.
ここでは例としてmain_mcを後から登場させるものとします.
//////////メインタイムライン 1フレーム目スクリプト修正
//ローカル変数としてではなくタイムライン変数として保持
var sw:int = stage.stageWidth;
var sh:int = stage.stageHeight;
// MC を整列させる関数 arrangeMC を定義
function arrangeMC():void{
sw = stage.stageWidth;//新しいステージ幅を取得
sh = stage.stageHeight;//新しいステージ高を取得
loader_mc.x = sw/2;
loader_mc.y = sh/2;
//main_mc.x = sw/2;←■削除
//main_mc.y = sh/2;←■削除
//main_mc.x = sw/2;//←■削除
~~
(以下同)
----------------------------
//////////main_mc内
//リサイズ用リスナーをステージのリサイズイベントに登録
stage.addEventListener(Event.RESIZE, mainResize);
//リサイズ用リスナー関数
//通常の関数として呼び出せるようイベントオブジェクトに
//デフォルト値(null)を設定
function mainResize(e:Event = null):void {
this.x = MovieClip(root).sw/2;
this.y = MovieClip(root).sh/2;
}
//初回登場時に(通常の関数として)実行
mainResize();
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
私のコンピューター上のファイ...
-
potplayerについて質問です
-
FLASHでゲームを作っていた人は...
-
この曲はなんでしょう?
-
laptop go2からの買い替え、lap...
-
スクリップト
-
arduino プログラムについて
-
chrome flash
-
FLASHの再生はできないのでしょ...
-
フラッシュゲームアーカイブ2
-
ウェブサイトで Flash が事実上...
-
Flashコンテンツを使ったWebサイト
-
Flash Playerのサポートが終了
-
Form内のselectを連動させるに...
-
Flashをブロックしないで
-
ダウンロードしたデジブックはa...
-
ad or script について
-
Flashplayerの運用について
-
VBAのコンボボックスの年月表示...
-
Adobe Flash Player
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAユーザーホームテキストボッ...
-
VBAで改行の入ったデータの正規...
-
9月30日はSEX CHANCE
-
テキストファイルから読み込ん...
-
縦横比率のを変えずに画像のサ...
-
upc 7915と mc7915ctは互換性有...
-
外部SWFファイルを再生バーでコ...
-
2つの取り込んだ画像を交差さ...
-
看護師です。体温表のマクロを...
-
FLASHでスロットゲームを作りた...
-
ActionScript - 複数の空ムービ...
-
変数に256文字以上のテキストを...
-
VB6.0で、フォームから、別のフ...
-
四乗根を英語で言うと・・・
-
photoshopで書いた四角の枠の中...
-
python ボタンを押すと複数の関...
-
テキストボックスの中身をリセ...
-
【VB.NET】別Formのボタンが押...
-
マウス自体の移動量の取得
-
UWSCのBTN関数について。
おすすめ情報