どうしてもわからないのでわかる方ぜひ教えてください!!
下記サイトの様に、画面サイズが変わったら文字やロゴがセンターに移動するようにしたいのですが、どのようにしたらよいでしょうか?
http://www.rex-holdings.co.jp/
色々調べたのですが、このようになかなかなってくれません。
宜しくお願いいたします。
No.1ベストアンサー
- 回答日時:
ActionScript などの前に,
その引用サンプルは,HTML の段階で Flash(SWF) が 100% 表示になっていますが,
その点はよろしいでしょうか?
Flash(SWF) が例えば 600px×400px のような固定表示では,
ウィンドウ によって Flash の大きさが変わりませんから,
ActionScript で,どうあがいても無理ですよ。
それで良いという条件で以下は回答します。
-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
なるべくシンプルなもので原理だけを説明したいので,
ゼロ の状態からサンプル例を回答します。
まず,Flash で 新規ドキュメント を作成してください。
作成したら,「ファイル」→「パブリッシュ設定」で,HTML タブ を選択し,
サイズ(D): [ムービーに合わせる ]▼
の部分を,
サイズ(D): [パーセント ]▼
幅(W) : 高さ(E) :
[100 ] × [100 ] パーセント
にして「OK」をクリック。100%の設定にしておきます。
ステージ上に,適当な大きさのムービークリップを2つばかり作成してください。
縦×横=1cm×4cm くらいの本当に適当な大きさのムービークリップを2つ作成します。
そして,どちらがどちらでも良いので,
1つのムービークリップには「mc0」,
もう1つのムービークリップ「mc1」というインスタンス名を付けます。
インスタンス名 も別にこれでなくてもかまいませんが,
サンプル例として,「mc0」と「mc1」というムービークリップを用意するだけです。
そして,レイヤーを1つ追加して,ActionScript 専用レイヤーにします。
その新しいレイヤーの空白キーフレームを選択して,
次のスクリプトを書き(コピペし),
SWF と HTML をパブリッシュすればサンプルの完成です。
-----------------------------
// ステージ上のオブジェクトの拡大縮小なし
Stage.scaleMode = "noscale";
// ムービーを左上に配置
Stage.align = "TL";
// 動くスピードの設定(★可変)
var spd = 1/4;
// ☆例1:ムービークリップ「mc0」を,
// 左上から (x,y)=(20%,15%) に移動
_root.mc0.onEnterFrame = function() {
this._x += (Stage.width*20/100-this._x)*_root.spd;
this._y += (Stage.height*15/100-this._y)*_root.spd;
};
// ☆例2:ムービークリップ「mc1」を,
// 左上から (x,y)=(80%,50%) に移動
_root.mc1.onEnterFrame = function() {
this._x += (Stage.width*80/100-this._x)*_root.spd;
this._y += (Stage.height*50/100-this._y)*_root.spd;
};
------------------------------
Flash MX 以上で作成可能,Flash Player 6 以上で再生可能なスクリプトです。
> 画面サイズが変わったら文字やロゴがセンターに移動…
単にそれだけだと,スクリプトなんて要りません。
普通のFlashを作成して,100%で表示すれば良いだけです。
まず,最初のポイントは,画面サイズに合わせて移動することではなく,
画面サイズに合わせて,Flash が拡大縮小しないというところです。
それには,
// ステージ上のオブジェクトの拡大縮小なし
Stage.scaleMode = "noscale";
が必要になります。
参考URL↓
表示に関する情報について
100%表示
サンプル表示(別窓) をクリック。
http://hakuhin.hp.infoseek.co.jp/main/as/stage.h …
そして,次のポイントは,
画面サイズに合わせて,Flash が拡大縮小しないのに,
オブジェクトを動かすというところです。
これには,
// ムービーを左上に配置
Stage.align = "TL";
で,Flash の 表示基準を左上で固定して置いて,
Movieclip.onEnterFrame = function() { };
で,各ムービークリップを目標地点に徐々に近づけることが必要になります。
Movieclip.onEnterFrame = function() { };
の { } 内は1フレーム進む時間ごとに毎回実行されます。
フレームレートがデフォルトの 12fps だと,1秒間に約12回実行されます。
{ } 内の内容は ActionScript と言うより,ほとんど算数です。
ActionScript の部分だけ補足しておくと,
+= は加算後代入演算子で,例えば,
A += 10 は, A = A + 10 と同じ意味です。
Stage.width と Stage.height は見てそのまま,ステージの幅と高さです。
ActionScript は 1箇所につなげた方が説明しやすく,書きやすく,作成しやすいと思ったからです。
Movieclip.onEnterFrame = function() { }; をフレームに書くのではなく,
各ムービークリップに
---------------------------
onClipEvent (enterFrame) {
this._x += (Stage.width*80/100-this._x)*_root.spd;
this._y += (Stage.height*50/100-this._y)*_root.spd;
}
---------------------------
などと書いても良いと思います。
また,もっともっと動かすムービークリップが増えるようでしたら,
80 や 50 などと言う場所の数字を,配列などに別に用意しておいて,
for文 で,一気に代入しても良いかもしれません。
一応,原理とその簡単なスクリプト例を回答しました。
>ActionScript などの前に,
>その引用サンプルは,HTML の段階で Flash(SWF) が >100% 表示になっていますが,
>その点はよろしいでしょうか?
はい。HTMLの方とパブリッシュ設定は100%に修正してましたが、その後がわかりませんでした。
>// 動くスピードの設定(★可変)
>var spd = 1/4;
>// ☆例1:ムービークリップ「mc0」を,
>// 左上から (x,y)=(20%,15%) に移動
>_root.mc0.onEnterFrame = function() {
>this._x += (Stage.width*20/100-this._x)>*_root.spd;
>this._y += (Stage.height*15/100-this._y)>*_root.spd;
>};
「拡大縮小しない」のと「左上にあわせる」はわかっていたのですが、上記のスクリプトがわからなかったのです。
やってみたら出来ました!
本当にありがとうございます!!!!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ウディタで作ったゲームを公開...
-
uwscでExcelに自動記入
-
FLASH MX で作成した、flashやA...
-
Flash Playerのサポートが終了
-
Flash対応のサイトが表示されない
-
Flashのウィンドウの設定は簡単...
-
ActionScript3.0で画面を揺らす...
-
FlashBuilder4からデータベース...
-
FLASHでゲームを作っていた人は...
-
この曲はなんでしょう?
-
laptop go2からの買い替え、lap...
-
スクリップト
-
私のコンピューター上のファイ...
-
arduino プログラムについて
-
chrome flash
-
FLASHの再生はできないのでしょ...
-
フラッシュゲームアーカイブ2
-
ウェブサイトで Flash が事実上...
-
Flashコンテンツを使ったWebサイト
-
Form内のselectを連動させるに...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
flashの背景色(stageの色)を...
-
hitTestについて教えてください
-
フラッシュのアクションスクリ...
-
画像をステージに読み込む方法 ...
-
FLASH 8 でバケツツールで上手...
-
JavaScriptを利用して
-
FLASHでの色変更
-
onClipEvent の enterFrameとlo...
-
Visual Studio 2017 でLabelのA...
-
アクションスクリプトでライブ...
-
ブラウザのサイズに合わせてオ...
-
MCの色を外部テキストで制御す...
-
photoshopで書いた四角の枠の中...
-
Pythonを使ってせん断応力図、...
-
python ボタンを押すと複数の関...
-
VBAで改行の入ったデータの正規...
-
【VB.NET】別Formのボタンが押...
-
別のアプリケーションのテキス...
-
VBScriptでMsgBoxのYesNoボック...
-
変数に256文字以上のテキストを...
おすすめ情報