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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   迷える子羊の部屋【初心者専用】
     全体表示したムービーに中央表示したいムービーを読み込みたい
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
nobio
Åê¹ÆNo.14287
投稿日時: 2005-1-19 14:25
新米
居住地:
投稿: 5
使用環境:
WinXP,Flash MX2004
全体表示したムービーに中央表示したいムービーを読み込みたい
リサイズで背景にムービーをいっぱいに表示しています。
その上に
loadMovie()でswfファイルを読み込んでいるのですが
そうすると noScale になってしまいリサイズすると
全部が中央に来てしまいます。

背景にしているムービーは Showall で読み込んだswfは
noScaleで中央もしくは中央上部に固定したいのですが
どのように書けば良いのでしょうか。

はじめから 壁にぶち当たっております。
ご教示ください。
空野大二郎
Åê¹ÆNo.14293
投稿日時: 2005-1-19 17:32
職人
居住地: 愛知
投稿: 389
使用環境:
 XP:Home
FlashMX
IE6.0+FlashPlayer7,0,19
CPU:Pentium4 2.26GHz
メモリ:1,024MB
Re: 全体表示したムービーに中央表示したいムービーを読み込みたい
 まいど。

 nobioさんのおっしゃる「リサイズ」の指す意図が不明です。
 fscommand("allowscale","true")で「リサイズ」を許可し、
htmlに貼り付ける.swfファイルの指定を、100%表示にしている
ということでしょうか?
引用:
nobioさんは書きました:
リサイズで背景にムービーをいっぱいに表示しています。


 nobioさんの提案とは異なりますが、Stage.scaleMode=noScaleにして、
ベースとなる.swfファイルの背景「back_mc」(仮)をブラウザの
大きさ変更にあわせて拡大・縮小する方法があります。

 <例>
 1:背景にするムービー「back_mc」をベース.swfの_rootに配置
_root.back_mc
 (注意:back_mcの中心点は、中央にする)

 2:同、ベース.swfの1フレーム目、フレームスクリプトに記述
resizeListener = new Object ();
resizeListener.ori_width = Stage.width;  //オリジナルの横幅サイズ
resizeListener.ori_height = Stage.height;  //オリジナルのたて幅サイズ
Stage.scaleMode = "noScale";
 
//ステージを監視してback_mcのサイズを変更するリスナー
resizeListener.onResize = function () {
	//横幅を基準にして判定
	//this.ori_width : this.ori_height = Stage.width : Stage.height
	//横幅をもとに、オリジナルの比率でたて幅の数値を求める。
	//var theHeight = this.ori_height * Stage.width this.ori_width;
	var theHeight = this.ori_height * Stage.width / this.ori_width;
	/ //横幅も求める
	//var theWidth = this.ori_width * Stage.height this.ori_height;
	var theWidth = this.ori_width * Stage.height / this.ori_height;
	if (Stage.width < this.ori_width || Stage.height < this.ori_height) {
		//ステージサイズがオリジナルより小さい場合
		_root.back_mc._width = this.ori_width;
		_root.back_mc._height = this.ori_height;
	} else if (theHeight <= Stage.height) {
		//比率で求めたたて幅が、ステージサイズのたて幅より小さいとき
		_root.back_mc._width = Stage.width;
		_root.back_mc._height = theHeight;
	} else {
		_root.back_mc._width = theWidth;
		_root.back_mc._height = Stage.height;
	}
};
Stage.addListener (resizeListener);


引用:
nobioさんは書きました:
背景にしているムービーは Showall で読み込んだswfは
noScaleで中央もしくは中央上部に固定したいのですが
どのように書けば良いのでしょうか。


 できるかどうかの確認のためのスクリプトですから、nobioさんの
役に立つのかどうかは分かりません。参考程度にテストしてください。


----------------
空野 大二郎 アニメーター作家
桜の道

nobio
Åê¹ÆNo.14311
投稿日時: 2005-1-20 15:02
新米
居住地:
投稿: 5
使用環境:
WinXP,Flash MX2004
Re: 全体表示したムービーに中央表示したいムービーを読み込みたい
すみません。わかりずらくて。
ご丁寧に本当にありがとうございます。

そうなんですhtmlにたて、よこ100%表示でベースのswfのファイルをおいてそのファイルの配置した画像をブラウザの大きさを変更したときに全体的に画像が張り付くようにしたいのです。

読み込んだswfのファイルはサイズが変わらないようにしたいのと
センターの上部にいつも来るように設定したいのです。

見つけました。下記のサイトみたいな感じなんですが
http://www.puma.com

このサイトの真ん中のメニューを上につけたい感じです。
どうでしょうか。

空野大二郎
Åê¹ÆNo.14313
投稿日時: 2005-1-20 15:28
職人
居住地: 愛知
投稿: 389
使用環境:
 XP:Home
FlashMX
IE6.0+FlashPlayer7,0,19
CPU:Pentium4 2.26GHz
メモリ:1,024MB
Re: 全体表示したムービーに中央表示したいムービーを読み込みたい
 まいど。

 こちらが提示した例は、nobioさんが示されたサイトとほぼ同じ
動作をしています。例をためされた上で、相違点を示していただければ、
状況が進展します。
 こちらの例の「意図」が分からない場合も、分からない箇所をご提示下さい。
引用:
nobioさんは書きました:
見つけました。下記のサイトみたいな感じなんですが
http://www.puma.com

このサイトの真ん中のメニューを上につけたい感じです。
どうでしょうか。


 構成が一部、変更されます。
引用:
空野大二郎は書きました:
 <例>
 1:背景にするムービー「back_mc」をベース.swfの_rootに配置
_root.back_mc
 (注意:back_mcの中心点は、垂直:上、水平:中央にする

 2:同、ベース.swfの1フレーム目、フレームスクリプトに記述
resizeListener = new Object ();
resizeListener.ori_width = Stage.width;  //オリジナルの横幅サイズ
resizeListener.ori_height = Stage.height;  //オリジナルのたて幅サイズ
Stage.scaleMode = "noScale";
Stage.align = "T";
//?省略?

引用:
nobioさんは書きました:
そうなんですhtmlにたて、よこ100%表示でベースのswfのファイルをおいてそのファイルの配置した画像をブラウザの大きさを変更したときに全体的に画像が張り付くようにしたいのです。

読み込んだswfのファイルはサイズが変わらないようにしたいのと
センターの上部にいつも来るように設定したいのです。


----------------
空野 大二郎 アニメーター作家
桜の道

nobio
Åê¹ÆNo.14314
投稿日時: 2005-1-20 15:52
新米
居住地:
投稿: 5
使用環境:
WinXP,Flash MX2004
Re: 全体表示したムービーに中央表示したいムービーを読み込みたい
var theHeight = this.ori_height * Stage.width this.ori_width;
var theWidth = this.ori_width * Stage.height this.ori_height;

試してみているのですが上記に2行でエラーになってしまいます。
何がいけないのでしょうか。



空野大二郎
Åê¹ÆNo.14315
投稿日時: 2005-1-20 16:45
職人
居住地: 愛知
投稿: 389
使用環境:
 XP:Home
FlashMX
IE6.0+FlashPlayer7,0,19
CPU:Pentium4 2.26GHz
メモリ:1,024MB
Re: 全体表示したムービーに中央表示したいムービーを読み込みたい
 まいど、失礼しました。
 こちらの投稿時の編集ミスです。

引用:
nobioさんは書きました:
//var theHeight = this.ori_height * Stage.width this.ori_width;
var theHeight = this.ori_height * Stage.width / this.ori_width;

//var theWidth = this.ori_width * Stage.height this.ori_height;
var theWidth = this.ori_width * Stage.height / this.ori_height;


試してみているのですが上記に2行でエラーになってしまいます。
何がいけないのでしょうか。


 例のスクリプトも、分かるように修正させていただきました。
 (「/」がコメントだとカンチガイして削除したのですよ。
申し訳ありません)
 テストするときは、間違ったスクリプトは削除してください。

──────────────────────────────
 [追記]
 野中さん、ナイスなフォロー、ありがとうございます。m(_ _,m
引用:
野中文雄さんは書きました:
演算子(演算記号)が、抜けているからでしょう。スクリプトの処理内容を考えながら写した方が、勉強になりますよ。


----------------
空野 大二郎 アニメーター作家
桜の道

野中文雄
Åê¹ÆNo.14316
投稿日時: 2005-1-20 16:46
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: 全体表示したムービーに中央表示したいムービーを読み込みたい
演算子(演算記号)が、抜けているからでしょう。スクリプトの処理内容を考えながら写した方が、勉強になりますよ。
引用:
nobioさんは書きました:
// オリジナルの縦横比は変えないとする:
// ステージと幅(Stage.width)を揃えた場合のオリジナルの高さを計算
var theHeight = this.ori_height * Stage.width/this.ori_width;
// ステージと高さ(Stage.height)を揃えた場合のオリジナルの幅を計算
var theWidth = this.ori_width * Stage.height/this.ori_height;

試してみているのですが上記に2行でエラーになってしまいます。
何がいけないのでしょうか。


----------------
 

nobio
Åê¹ÆNo.14320
投稿日時: 2005-1-20 17:55
新米
居住地:
投稿: 5
使用環境:
WinXP,Flash MX2004
Re: 全体表示したムービーに中央表示したいムービーを読み込みたい
ありがとうございます。
書きながら復習しました。
びっくり動きました。

Stage.align = "TL";
だと完璧に背景のムービーが収まりました。

Stage.align = "T";
では若干背景が右方向に拡大しながらずれていってしまうので
現在、格闘中です。

取り急ぎお礼と動作ご報告させていただきます。


空野大二郎
Åê¹ÆNo.14322
投稿日時: 2005-1-20 18:31
職人
居住地: 愛知
投稿: 389
使用環境:
 XP:Home
FlashMX
IE6.0+FlashPlayer7,0,19
CPU:Pentium4 2.26GHz
メモリ:1,024MB
Re: 全体表示したムービーに中央表示したいムービーを読み込みたい
 まいど。
 もう、解決されたかもしれませんが、追記。

 back_mcの中心点が下記のようですと、nobioさんのお手元の状態で、
背景のムービーが画面上に収まるでしょう。

 「back_mcの中心点は、垂直:上、水平:にする」
引用:
nobioさんは書きました:
Stage.align = "TL";
だと完璧に背景のムービーが収まりました。


 ですが、Stage.alignを右上(TL)にすると、ステージ中央が
左上に表示されてしまうと予測されます。
 その調整は、nobioさんの判断にお任せします。


──────────────────────────────
 余談:nobioさんが取り上げられたサイトでは、背景_mcのたて幅は、
横幅の比率に固定されています。
 おそらく、横長のディスプレイで、画面一杯に背景_mcが表示される
ように設計されていると考えられます。
 その場合のスクリプト
	//?略?
	//横幅をもとに、オリジナルの比率で横幅を求める
	var theWidth = this.ori_width * Stage.height / this.ori_height;
	//たて幅の数値を求める。
	var theHeight = this.ori_height * Stage.width / this.ori_width;
	if (theWidth <= Stage.width) {
		//比率で求めた横幅が、ステージサイズの横幅より小さいとき
		_root.back_mc._width = Stage.width;
		_root.back_mc._height = theHeight;
	} else {
		_root.back_mc._width = theWidth;
		_root.back_mc._height = theHeight;
	}
	//?略?


----------------
空野 大二郎 アニメーター作家
桜の道

nobio
Åê¹ÆNo.14323
投稿日時: 2005-1-20 19:17
新米
居住地:
投稿: 5
使用環境:
WinXP,Flash MX2004
Re: 全体表示したムービーに中央表示したいムービーを読み込みたい
微調整なんですが勉強になります。
いろいろ試してみました。
ありがとうございます。

が、また違う問題にあたりました。
やっとこできたサンプルを
WEB上のブラウザで見ていたのですがサイズを変更すると
全画面に表示されるのですが元のベースのswfより
大きいブラウザの状態でswfの貼り付けたhtmを開くと
flaで設定した1000×560のまま表示されます。
そのあと少しでもブラウザのサイズを変更すればピッたしに
背景がつまります。

そのページを開いた時点でドンってピッたし出て欲しいのですが
これは読み込んだときに現状のブラウザの広さみたいなものを判定して表示するようなコマンドがあるということなのでしょうか。

これは議題のタイトルと違うのですが・・・
四苦八苦しております。。

(1) 2 »
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

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