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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   コーダーズルーム【スクリプト系】
     ブラウザの表示サイズによってMCの表示サイズ(?)を変えたい
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
hidenoki
Åê¹ÆNo.3569
投稿日時: 2004-2-6 15:41
新米
居住地: 群馬県
投稿: 15
使用環境:
Windows2000
FlashMX-Version6.0
ブラウザの表示サイズによってMCの表示サイズ(?)を変えたい
初めて投稿します。宜しくお願いします。

ブラウザの表示サイズに合わせてJpeg画像を縮小させたく無いので
ScrollPaneを使用して画像を表示させ様としています。
ブラウザの表示サイズをStageを使用して取得して、ScrollPaneの
表示サイズを変更しようと試みたのですが、どうも上手くいきません。
もしかしてStageでは、ブラウザの表示サイズを取得できないのでしょうか?
下記に私が行っている方法を記述しますので、宜しくお願いします。

Stage.scaleMode = "noScale";
Stage.align = "TL";
ContentsNo = 1; // 表示コンテンツ番号
// コンテンツ表示
movie.loadScrollcontent("image" + ContentsNo + ".jpg");
Bw = Stage.width; // ブラウザ横幅
Bh = Stage.height; // ブラウザ高さ
Bx = Bw - 40;
By = Bh - 40;
movie.setSize(Bx, By); // コンテンツ表示サイズ

※movieは、ScrollPaneです。
笠居トシヒロ
Åê¹ÆNo.3574
投稿日時: 2004-2-6 19:01
マスター
居住地: 兵庫
投稿: 870
使用環境:
SnowLeopard, Safari4, CS4
Windows7, IE8, CS4
Re: ブラウザの表示サイズによってMCの表示サイズ(?)を変えたい
こんにちは。
かなり誤解と混乱があるようですが・・・落ち着いて問題を整理してみましょう。

なぜブラウザのウィンドウサイズを変えると画像のサイズが変わるのですか?
考えられるのは、『ブラウザにSWFを直接表示している』か、『HTMLのタグでムービーのサイズを%指定している』
かのどちらかですが、何故そのようなことをする必要があったのでしょう?

画像サイズを変更したくないので、ScrollPaneを使ったとありますが、それは何故ですか?
ムービーの表示サイズが変わるようなシチュエーションでは、どんなコンポーネントを使おうが、
ムービーの部品は全てムービーサイズに追随して拡大縮小してしまうと思うのですが。

Stageというオブジェクトでブラウザのサイズが取得できると思ったのは何故ですか?
Stageはムービーの表示エリアのサイズを取得できますが、ブラウザのウィンドウサイズは取得できません。

ムービー全体が大きくなってしまった場合でも、中身はそのままのサイズで表示させておきたい、
という希望はわかりますが、上記の答え如何によって、問題解決の方法が変わってくると思います。

たとえば、ブラウザのサイズに係り無く、ムービーの表示サイズが一定であればいい、
ということなら、ObjectタグとEmbedタグに、ピクセルでサイズを指定すればいいだけです。

何が問題なのか、を他の人にもわかるように説明してみて下さい。


----------------
笠居 マッドシー
http://www.mad-c.com/

hidenoki
Åê¹ÆNo.3617
投稿日時: 2004-2-9 11:49
新米
居住地: 群馬県
投稿: 15
使用環境:
Windows2000
FlashMX-Version6.0
Re: ブラウザの表示サイズによってMCの表示サイズ(?)を変えたい
すみません。まだ「かなりの誤解と混乱」があります(*_*;

まず、画像はJpeg(720w*540h)で、進む戻るボタン(40w*40h)を画像右横に配置し、画像を進む戻るボタンで展開させる様なMCになってます。
パブリッシュで出来たHTMLをほぼそのまま使用し、<OBJECT>タグ内、<EMBED>タグ内の両方でMCを90%と指定させてます。

【やりたい事】
1)ブラウザのスクロールバーを使用せずに1画面内にMCを表示。
2)画像、進む戻るボタンを拡大縮小させたくない。
3)表示エリアが小さい場合は、画像にスクロールバーを表示。

 私の文章力の無さで誤解を招いたみたいですが、Stageオブジェクトでブラウザのサイズが取得できると認識してません。kasai様のおっしゃる通りで「表示エリアのサイズ取得」ができると認識しています。
 ですから、HTML内で90%表示として表示エリアの取得を試みたのです。
 ちなみにSWF単体(?)では、自分の思惑通りに表示できたのですが…
※[引用]の使い方が解らない為、文章内に不備が御座いましたら申し訳ございません。
rin-ko
Åê¹ÆNo.3625
投稿日時: 2004-2-9 19:02
職人
居住地: 東京
投稿: 397
使用環境:
MacOSX10.5/10.4
WinXP SP3
MX2004Pro/CS3
Re: ブラウザの表示サイズによってMCの表示サイズ(?)を変えたい
hidenokiさん、はじめまして。

引用:
<OBJECT>タグ内、<EMBED>タグ内の両方でMCを90%と指定させてます。

ムービーサイズが変わる原因は、笠居さんが指摘なさっているように『HTMLのタグでムービーのサイズを%指定している』ためですね。
笠居さんの説明の繰り返しになりますけれど、その表示方法をとれば、ムービーサイズはブラウザのサイズに応じて拡大縮小し、同時にムービー内にある画像やボタンのサイズも拡大縮小されます。
%指定ではなく、ピクセル指定でムービーのサイズを指定することはできないのですか?
画像サイズは720w*540hとありますよね。ムービーのサイズもこのサイズで作られていると仮定すると、HTMLの<OBJECT>タグ内、<EMBED>タグ内でWIDTH=720 HEIGHT=540 とすればいいように思うのですけど。
Flashの「パブリッシュ設定:HTML」の「サイズ」の部分で「ムービーに合わせる」を選択(これはFlash5の仕様なので、MXでは違っていたらごめんなさい)すれば、ムービーサイズを指定したHTMLを書きだしてくれると思いますよ。

あと、引用方法その他については、FAQの利用ガイドを参考にされるとよいと思います。
hidenoki
Åê¹ÆNo.3644
投稿日時: 2004-2-10 8:46
新米
居住地: 群馬県
投稿: 15
使用環境:
Windows2000
FlashMX-Version6.0
Re: ブラウザの表示サイズによってMCの表示サイズ(?)を変えたい
度々すみません。まだ私のやりたい事が伝わってない様で…
自分の文章力の無さに困っています。(T-T)

【ムービーサイズ(?)は固定したくない】
先にも書きましたが、ムービーサイズを固定するとブラウザのウィンドウサイズが小さい場合、ブラウザ自身にスクロールバーが表示されてしまいますよね?それが嫌なんです。
【スクロールバーは画像に】
あくまでも、スクロールバーが表示されていいのは、MC内の画像(Jpeg)内のみにしたいので、Scrollpaneを使用しています。

ここまで書いてきて思ったのですが、私のやりたい事は出来ないって事なんでしょうか?ここのフォーラムだけが頼りなんですが…出来ないのであれば、諦めますが…

何度も書いて申し訳無いのですが…
●ムービーをピクセル指定して固定してしまうとブラウザのウィンドウサイズがムービーサイズより小さい場合、ブラウザ自身にスクロールバーが表示されてしまいますよね?それが嫌なんです。
ゲスト
Åê¹ÆNo.3647
投稿日時: 2004-2-10 10:12
Re: ブラウザの表示サイズによってMCの表示サイズ(?)を変えたい
hidenokiさんのおっしゃりたいのはこういうことでしょうか?
http://www.nhk.or.jp/dig/monomania/
上記サイトはブラウザのサイズを広げても背景(?)のみが広がりますが、
全体がFlashで構成されています。
DEN
Åê¹ÆNo.3648
投稿日時: 2004-2-10 10:21
常連
居住地: 千葉県佐倉市
投稿: 84
使用環境:
Mac OS9.2,10.3
WinXP
FlashMX,Flash8
Player7,Player9
Re: ブラウザの表示サイズによってMCの表示サイズ(?)を変えたい
NTT DATAの
http://www.nttdata.co.jp/
HPではタブをクリックして
ウィンドウを全て表示してから
ブラウザーのウィンドウサイズを変えると
いろいろ変わります。


----------------
DEN

pinkgear
Åê¹ÆNo.3649
投稿日時: 2004-2-10 10:39
半人前
居住地:
投稿: 35
使用環境:
Mac OS X 10.4.2, Studio MX 2004 w Flash MX Pro
Re: ブラウザの表示サイズによってMCの表示サイズ(?)を変えたい
ムービーサイズは固定したくない、スクロールバーは画像に。
ちょっと手抜きのものを作ってみましたが、こんな感じの事でしょうか。
http://www.waiz.bz/test/index.html
これをやるにはリスナーオブジェクト(?)を使わなければいけません。
ちなみに、制作はFlash MX 2004です。Flash MX ver6 は持ってないので確認できませんが、ヘルプにはFlash Player 6 と明記されているので出来るかも(?)と思って返信投稿する事にしました。(^^;
コードは以下の様な感じです。


/*
ステージのフレームの長さは1フレーム
レイヤー1に、ScrollPane(名前はmovie)
レイヤー2に、以下のスクリプトを記述。
*/

Stage.scaleMode = "noScale";
Stage.align = "TL";

var listenerObj = null;
this.listenerObj = new Object();
this.listenerObj.resizablePane = this.movie;
this.listenerObj.onResize = this.ChangePaneSize;
Stage.addListener(this.listenerObj);

// ブラウザ横幅、ブラウザ高さ
// コンテンツ表示サイズ
this.movie.setSize(Stage.width - 40, Stage.height - 40 ); 

function ChangePaneSize()
{
	var Bw = Stage.width; // ブラウザ横幅
	var Bh = Stage.height; // ブラウザ高さ
	var Bx = Bw - 40;
	var By = Bh - 40;

	this.resizablePane.setSize(Bx, By); // コンテンツ表示サイズ
}



質問の内容と答えが違ってたら、流しちゃって下さい。(^^;
hidenoki
Åê¹ÆNo.3651
投稿日時: 2004-2-10 11:48
新米
居住地: 群馬県
投稿: 15
使用環境:
Windows2000
FlashMX-Version6.0
Re: ブラウザの表示サイズによってMCの表示サイズ(?)を変えたい
pinkgearさん、完璧です。
私のやりたい事をずばっと解決してくれてます。
大変ありがとうございました。m(__)m

ただ、上記方法で出来たのですが、
引用:

pinkgearさんは書きました:
var listenerObj = null; //←なぜヌルを代入するのですか?
this.listenerObj.resizablePane = this.movie;

の部分をまだ理解しないで使用しています。(T-T)
特に"resizablePane"は、HELPに載ってないので全く解りません。
出来れば、意味を教えて下さい。

kasaiさん、rin-koさん、KENTAさん、SUZUDENさん、pinkgearさん、
ご協力ありがとうございました。これからも末永く宜しくお願い致します。
野中文雄
Åê¹ÆNo.3652
投稿日時: 2004-2-10 12:45
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: ブラウザの表示サイズによってMCの表示サイズ(?)を変えたい
nullの代入は、変数の初期化をされているのだと思います。けれど、変数宣言と同時に値を入力してもよいでしょう。
// var listenerObj = null; //←なぜヌルを代入するのですか?
// this.listenerObj = new Object();
var listenerObj = new Object();  // これでもOK

以下のステートメントは、ScrollPaneインスタンスmovieを、リスナーオブジェクトのプロパティresizablePaneとして設定しています(つまりresizablePaneは、任意のプロパティ名です)。これは、Stage.onResizeイベントハンドラメソッドのコールバック関数ChangePaneSize内で、ScrollPaneインスタンスを参照しやすいようにということでしょう。
this.listenerObj.resizablePane = this.movie;

コールバック関数を以下のように書替えると、上記のステートメントは省略可能です。
function ChangePaneSize()
{
       // [中略]
       // this.resizablePane.setSize(Bx, By); // コンテンツ表示サイズ
       movie.setSize(Bx, By);
}

ただ、プロパティに設定しておく方が、スクリプトの柔軟性が増します。
引用:
hidenokiさんは書きました:
の部分をまだ理解しないで使用しています。(T-T)
特に"resizablePane"は、HELPに載ってないので全く解りません。


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

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

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