よろしくお願いいたします。
■環境
MAC OS 10.4.9
Flash 8 Pro
ActionScript 2.0
フルスクリーンのフルフラッシュ
ユニクロドットコムの様に高画質な写真をセンターに配置したいです。
その際に写真の縦横の比率は変えずに、
縦は常にブラウザの上下と同じサイズで、
大きなサイズのディスプレイで見た人には左右に背景を出し、
小さいなサイズのディスプレイで見た人には全画面で見える。
という風にしたくて色々と試行錯誤しておりますが、上手くいきません。
まさに目指す見え方がユニクロドットコムのトップページなのですが、やはり中村勇吾さんのようにはいきません・・・。
どなたかご掲示いただけませんか。
よろしくお願いいたします。m(_ _)m
No.1ベストアンサー
- 回答日時:
書かれているご質問の文章と,
ユニクロドットコムのページは全然違うように思いますが,
本当にこちらのページ↓で合っていますか?
「Uniqlo.com」
http://www.uniqlo.com/jp/
> 写真の縦横の比率は変えずに、
> 縦は常にブラウザの上下と同じサイズで、
ぜんぜんそのようにはなっていませんが...
確かに,写真の縦横の比率は変わりませんが,
そうではなくて,
横がは常にブラウザの横幅サイズに影響されています。
また,
> 大きなサイズのディスプレイで見た人には左右に背景を出し、
ユニクロの場合は,
大きなサイズのディスプレイでも,小さなサイズのディスプレイでも,
常にメニューのようなものが表示されていますよ。
ぜんぜんちがう内容のことを2つ書かれても,
どう回答して良いのか迷ってしましますが......。
また,これも意味がわかりません↓。
> 大きなサイズのディスプレイで見た人には左右に背景を出し、
> 小さいなサイズのディスプレイで見た人には全画面で見える。
左右に背景が見えたり見えなかったりするのは,
大きなサイズのディスプレイとか,
小さいなサイズのディスプレイとかいう問題ではなく,
単ウィンドウの縦横比で左右に背景が見えたり見えなかったりさせるのではないでしょうか?
書いている内容自体も矛盾していますね。
Flash の作成に取りかかる以前に,
「何をどうしたいのか」を具体的にしっかりイメージしましょう。
そうしないと,できないと思います。
=======================================
違うことや矛盾することが多く謎だらけですから,
次の部分についてのみ,作成サンプルを回答します。
> 写真をセンターに配置したいです。
> その際に写真の縦横の比率は変えずに、
> 縦は常にブラウザの上下と同じサイズで、
まず,Flash で 新規ドキュメント を作成してください。
作成したら,「ファイル」→「パブリッシュ設定」で,HTML タブ を選択し,
サイズ(D): [ムービーに合わせる ]▼
の部分を,
サイズ(D): [パーセント ]▼
幅(W) : 高さ(E) :
[100 ] × [100 ] パーセント
にして「OK」をクリック。100%の設定にしておきます。
そして,
ステージ上に 「縦に長めの塗りの長方形」 を描いてください。
これは写真に見たてている物で,写真でもかまいませんが,
長方形の塗りを描くだけでも十分サンプルにはなります。
大きさは適当でかまいません。
横幅150px,高さ200pxくらいの大きさで良いと思います。
その 「縦に長めの塗りの長方形」 を全部選択して,
「修正」→「シンボルに変換」で ムービークリップ に変換するわけですが,
変換する際の「基準点」に注意してください。
実際にはどこを基準点としても良いのですが,
座標計算の都合上,この回答では,
上の中央↓にしておいたということにします。
基準点(R) □■□
□□□
□□□
基準点が上の中央の「縦に長めの塗りの長方形」ムービークリップができましたら,
そのムービークリップにインスタンス名を付けます。
この説明では 「my_mc」 というインスタンス名を付けたとしておきます。
そして,
レイヤーを1つ追加して,ActionScript 専用レイヤーにします。
その新しいレイヤーの空白キーフレームを選択して,
次のスクリプトを書き(コピペし),
SWF と HTML をパブリッシュすればサンプルの完成です。
-------------------------------------
// ステージ上のオブジェクトの拡大縮小なし
Stage.scaleMode = "noscale";
// ムービーを左上に配置
Stage.align = "TL";
//
//ムービークリップの縦横比を算出
mc_w = _root.my_mc._width/_root.my_mc._height;
//
// リスナー用オブジェクトの作成
myListener = new Object();
// ステージ拡大縮小時の onResize を動作定義
myListener.onResize = function() {
//ムービークリップを中央に表示
_root.my_mc._x = Stage.width/2;
_root.my_mc._y = 0;
//ステージの高さによってムービークリップの大きさを変える
_root.my_mc._height = Stage.height;
_root.my_mc._width = mc_w*_root.my_mc._height;
};
// 上記 onResize の動作を初回実行
myListener.onResize();
//
// ステージクラスにリスナー用オブジェクトを登録
Stage.addListener(myListener);
-------------------------------------
Stage.scaleMode = "noscale";
これで,ムービーの中身の大きさをウィンドウの大きさによって変化させないようにしておいて,
Stage.align = "TL";
これで,基準となる座標位置を左上と決定しておきます。
あとは,ステージのサイズを監視するリスナーオブジェクトを作って,
ステージのサイズが変わるたびに,
各ムービークリップ(上記の場合1つのムービークリップ)の座標や大きさを,
スクリプトによって随時更新させるということです。
それだけのことと言えば,それだけのことです。
あと,Flash ではなく,HTMLの話ですが,
Flash の周りの余白が気になるようでしたら,
パブリッシュされた HTML の <body>タグ,
<body bgcolor="#ffffff">
などとなっている部分を,
<body bgcolor="#ffffff" leftmargin="0" topmargin="0">
などのように変更すれば隙間はなくなると思います。
=======================================
その他の点につきましては,
どういうことをしたいのかがわかりませんから,書けません。
上に書いたことや,次のURL群を参考にしてみてください。
Flashの表示サイズを動的に変更させる方法
http://oshiete1.goo.ne.jp/qa2479358.html
↑教えて!goo ↓OKWave(同じです)
http://okwave.jp/qa2479358.html
「画面サイズが変わると移動するスクリプト」
http://oshiete1.goo.ne.jp/qa2326170.html
↑教えて!goo ↓OKWave(同じです)
http://okwave.jp/qa2326170.html
Flashゲーム講座&ASサンプル集
【表示に関する情報について】
http://hakuhin.hp.infoseek.co.jp/main/as/stage.h …
至らぬ質問への回答、本当にありがとうございます。
まさに、sassakunさんが回答してくださったことがやりたかったのです。教えていただいたスクリプトを元にいろいろ実験してみました。
MCのサイズの縦のみをブラウザのサイズに依存させれるならと思い、自分なりに改造してMCのサイズの横のみをブラウザのサイズに依存させる実験をしてみました。
基準点(R) □□□
■□□
□□□
=======================================
// ステージ上のオブジェクトの拡大縮小なし
Stage.scaleMode = "noscale";
// ムービーを左上に配置
Stage.align = "TL";
//
//ムービークリップの縦横比を算出
mc_w = _root.my_mc._height/_root.my_mc._width;
//
// リスナー用オブジェクトの作成
myListener = new Object();
// ステージ拡大縮小時の onResize を動作定義
myListener.onResize = function() {
//ムービークリップを中央に表示
_root.my_mc._x = 0;
_root.my_mc._y = Stage.height/2;
//ステージの高さによってムービークリップの大きさを変える
_root.my_mc._height = mc_w*_root.my_mc._width;
_root.my_mc._width = Stage.width;
};
// 上記 onResize の動作を初回実行
myListener.onResize();
//
// ステージクラスにリスナー用オブジェクトを登録
Stage.addListener(myListener);
=======================================
が、この方法ですとバブリッシュ後は形が狂ってしまいます。
自分でウィンドウを動かすと形が正常に戻り、求めていた動きをするのです。
ちょっと自分には早すぎたのかもしれません。
もし、お時間ありましたらどこの考え方が間違っているのか教えていただけませんか?
よろしくお願いいたします。
m(_ _)m
No.2
- 回答日時:
#1です。
「縦と横のどちらを基準に,もう片方を決めているのでしょうか?」
ということを考えるとどこが間違っているのかわかると思いますよ。
#1の補足で書かれている不正解部分↓
//ステージの高さによってムービークリップの大きさを変える
_root.my_mc._height = mc_w*_root.my_mc._width;
_root.my_mc._width = Stage.width;
正解↓
//ステージの高さによってムービークリップの大きさを変える
_root.my_mc._width = Stage.width;
_root.my_mc._height = mc_w*_root.my_mc._width;
横を基準に大きさを変化させて,
その横幅を基準に高さを決定するのですから,
順序が逆ですね。
ではなぜ,
> 自分でウィンドウを動かすと形が正常に戻り、
> 求めていた動きをするのです。
という現象が起きるのかというと,
実は,「形が正常に戻り」状態ではないのです。
前の段階の横幅を基準に高さが決まっただけなのです。
ですから,ワンテンポずれています。
ウィンドウの形を動かし続けると,
繰り返し,myListener.onResize が実行されます。
このときの高さはほんの少し前の横幅を基準にするため,
ほとんど誤差は無いに等しいですが,
厳密には前の瞬間の横幅によって高さが決定されるので,
ほんのワンテンポずつ遅れて高さが決まっています。
ですから,
毎回少しずつ誤差があるので,本当は「形が正常に戻り」状態にはなっていないのです。
そういう感じで,
1つずつ(1行ずつ)ちゃんと考えて行くと,
たいていの場合,自分で組みたてた理論通りに動くと思いますよ。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【VBA】写真の縦横比を変えずに貼り付ける 5 2023/06/13 11:42
- ホームページ作成・プログラミング グリッドレイアウトHTMLとCSS 1 2023/02/22 02:36
- HTML・CSS (Javascript)印刷するファイルに応じて印刷プレビュー画面で用紙を自動的に切り替えたい!! 2 2022/04/11 12:04
- 俳優・女優 実物を見たことがないのに、画像から実寸サイズを導き出すことってできるんでしょうか。 このTwitte 1 2023/08/25 19:11
- Illustrator(イラストレーター) ペイントでサイズを小さくする 5 2023/06/17 10:33
- その他(動画サービス) VLCメディアプレーヤーについて 1 2022/11/29 14:19
- 画像編集・動画編集・音楽編集 動画を、静止画写真のように、好きな画角で拡大とかトリミングした編集動画にできるのでしょうか? 5 2023/01/27 11:16
- 数学 情報処理詳しい人!! A4縦のレポート文書に4:3の大きさの横向きの写真画像を貼り付けることにした。 2 2022/12/18 02:30
- フリーソフト フリーソフト[フリーオンライン動画兼音声変換ソフト]縦長になってしまう 2 2022/07/11 08:11
- その他(Microsoft Office) 複数の写真を1枚に印刷 5 2023/05/05 22:41
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
縦横比率のを変えずに画像のサ...
-
テキストファイルから読み込ん...
-
四角形の端っこをドラッグした...
-
ラッコって?
-
看護師です。体温表のマクロを...
-
VBAで改行の入ったデータの正規...
-
VBScriptでMsgBoxのYesNoボック...
-
【VB.NET】別Formのボタンが押...
-
C# chart controlの透過について
-
static関数がmapファイルに載ら...
-
プログラミング、アーキテクチ...
-
ACCESSフォームで、入力から一...
-
Actionscriptでふわふわ感を再...
-
画面の範囲選択
-
アセンブリ言語のcasl2について...
-
'2465'指定した式で参照してい...
-
POIでのテキストボックス作成に...
-
C言語でのマウスを移動とマウス...
-
python ボタンを押すと複数の関...
-
photoshopで書いた四角の枠の中...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAで改行の入ったデータの正規...
-
VBAユーザーホームテキストボッ...
-
テキストファイルから読み込ん...
-
Flashで外部jpgファイルをmcに...
-
FlashでドラッグしたMCをリセッ...
-
AS3 mc0~5をまとめて処理する
-
upc 7915と mc7915ctは互換性有...
-
ラッコって?
-
縦横比率のを変えずに画像のサ...
-
テキスト入力
-
ステージの背景画像のみ拡大縮...
-
eval関数を利用して複数の処理...
-
ランダムに mcを連続attachM...
-
外部SWFファイルを再生バーでコ...
-
四角形の端っこをドラッグした...
-
看護師です。体温表のマクロを...
-
as3 addchildで生成したMCにリ...
-
Flashからリンクする際のconfir...
-
以下のActionScriptをスッキリ...
-
Suzukaで一行ニュースティッカ...
おすすめ情報