トップへ戻るニュースフォーラムFLASH-ML 過去ログBak@Flaダウンロードよくある質問と答
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   コーダーズルーム【スクリプト系】
     stageHeight, stageWidthが適用できません・・
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
mojiro-
Åê¹ÆNo.45566
投稿日時: 2010-8-24 15:35
新米
居住地: シアトル
投稿: 2
使用環境:
OS: Win Vista Home 32Bit
ソフト:Flash CS4
ブラウザ:Google Chrome(製作過程では動作が速いので)
stageHeight, stageWidthが適用できません・・
はじめまして。

フラッシュほぼ初心者ですが、WEBなどで勉強しつつ、どうにかこうにかフルスクリーンのサイト作成に挑戦しています。

大きなステージと背景(1920x1200)を用意しておいて、左上あわせにした上で、ブラウザ領域にあわせ、
背景のクリップ(BG_mc)だけを拡大・縮小表示させようとしているのですが、これだけでもう1週間ほど費やしてしまいました・・。


ネットで見つけたもっともシンプルな例では、

stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
BG_mc.width = stage.stageWidth;
BG_mc.height = stage.stageHeight;

となっていますが、リサイズは適用されず、さらに背景が読みこまれずに、プログレスバー終了後に停止してしまいます。

以下、なんとか途中停止はしなくなったものの、あいかわらずリサイズが適用されない、現状のスクリプトです。


//--------------- progress bar ------------

var imageURL:String = "Main.swf";
var request:URLRequest = new URLRequest(imageURL);
swfLoader.scaleContent = true;
swfLoader.load(request);

progressBar.source = swfLoader;
progressBar.addEventListener(ProgressEvent.PROGRESS,progressHandler);
progressBar.addEventListener(Event.COMPLETE,completeHandler);

function progressHandler (event:ProgressEvent):void{
status_txt.text = int(event.currentTarget.percentComplete) + "%";
}

function completeHandler (event:Event):void{
progressBar.removeEventListener(ProgressEvent.PROGRESS,progressHandler);
progressBar.removeEventListener(Event.COMPLETE,completeHandler);
removeChild(progressBar);
}


//---------------- stage setup ---------------

stage.showDefaultContextMenu = false;
Security.allowDomain("*");
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;

var BG_mc:MovieClip = new MovieClip();
BG_mc.addEventListener( Event.ADDED_TO_STAGE, function(){trace( BG_mc.stage );} );
addChild( BG_mc );

BG_mc.width = stage.stageWidth;
BG_mc.height = stage.stageHeight;


//--------------------------------------------


なにか基本的なところで間違えているのでしょうか?

そもそも、現状のブラウザ領域を取得するには、stage.stageHeightとstageWidthでよいのでしょうか?


いろいろと似たようなサンプルをみて試してみたのですが、どうしてもうまくいきません。

どなたか教えていただけないでしょうか?

よろしくお願いします。
ひろゆき
Åê¹ÆNo.45567
投稿日時: 2010-8-24 16:02
ちょんまげら
居住地: 東京砂漠
投稿: 4403
使用環境:
10.8.5

Flash Professional CS4/CS6/CC

Safari 6.1
Re: stageHeight, stageWidthが適用できません・・
stage が null になっているのではないでしょうか?
trace などして確認しましょう。


次に、「Event.ADDED_TO_STAGE」を調べてみては?

一度に、たくさんのことをやろうとしていませんか?
ステージサイズをウィンドウサイズに合わせる、いわゆる「リキッドレイアウト」を実現したいのであれば、
まずは、プログレスバーは混乱を招くだけなので、この際、棚上げした方が良さそうに思います。

そのうえで、「リキッドレイアウト」をサイト内検索してみては?
少なくとも、現状でのスクリプトを拝見しても、リサイズに対応されていません


----------------
質問する際は、回答者に具体的な情報を与えてください。

hide33
Åê¹ÆNo.45571
投稿日時: 2010-8-25 9:16
半人前
居住地:
投稿: 39
使用環境:
CS4
10.6
Re: stageHeight, stageWidthが適用できません・・
ひろゆきさんの仰るとおりだと思います。

stage.addEventListener(Event.RESIZE, resized);

あとfunction resized(e:Event):void{ 動作させたいこと };


リキッドレイアウトで検索するといいですよ。
tetsuo_119
Åê¹ÆNo.45591
投稿日時: 2010-8-26 17:42
新米
居住地:
投稿: 10
使用環境:
Re: stageHeight, stageWidthが適用できません・・
>BG_mc.width = stage.stageWidth;
>BG_mc.height = stage.stageHeight;

これだと、ユーザーPCのスクリーンサイズによって、
画像が伸縮されてしまいます。

画像を、縦横比「等倍」で伸縮させればOKですよ。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を
 
Copyright (C) 2003 FLASH-japan. All rights reserved.
Powered by Xoops