• 締切済み

flash ウインドウの大きさを変更しても常に定位置

falsh8でアクションスクリプトのバージョンは1でわからないことがあるので教えてください。 ステージ上に、 ムービークリップの インスタンス名 mc1 と ムービークリップの インスタンス名 mc2 と ムービークリップの インスタンス名 mc3 を配置しております。 ブラウザのウインドウの大きさを変更しても常に、 mc1 はウインドウの最上部に表示 mc2 はウインドウの中央部に表示 mc3 はウインドウの最下部に表示させたいのですが、どういうスクリプトを書けばよいでしょうか? 教えてください、よろしくお願いします。

  • Flash
  • 回答数2
  • ありがとう数1

みんなの回答

  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.2

#1です。 昨日は時間不足のため簡易的な回答しか書きませんでしたが...。 > mc1 はウインドウの最上部に表示 > mc2 はウインドウの中央部に表示 > mc3 はウインドウの最下部に表示 これだけでは左右の位置がわかりませんが, 仮に mc1,mc2,mc3 とも,左右はステージの中央に表示させるとします。 「mc1」は上の中央に基準点が来るようなムービークリップにします。 「mc2」は中央の中央に基準点が来るようなムービークリップにします。 「mc3」は下の中央に基準点が来るようなムービークリップにします。 必ずしもこうする必要があるわけではありません。 こうすれば計算が楽になる(±の座標補正が不要になる)というだけです。 上記のようなものを用意した場合, mc1,mc2,mc3 が存在するタイムラインのキーフレームに書くスクリプトは次のようになります。 ------------------------------ // ステージ内容の拡大縮小なし Stage.scaleMode = "noScale"; // ステージの上左を基準にする Stage.align = "TL"; // ステージ監視用のインスタンス「stageObj」を作成 stageObj = new Object(); // ステージのサイズが変わったときの動作定義 stageObj.onResize = function() { // 「mc1」の座標を上の中央にする mc1._x = Stage.width/2.; mc1._y = 0; // 「mc2」の座標を中央の中央にする mc1._x = Stage.width/2.; mc1._y = Stage.height/2.; // 「mc3」の座標を下の中央にする mc1._x = Stage.width/2.; mc1._y = Stage.height; // 表示を即更新 updateAfterEvent(); }; // ステージ監視用インスタンスをステージのリスナーに登録 Stage.addListener(stageObj); // 初期表示段階で stageObj.onResize を実行 stageObj.onResize(); ------------------------------ ・ActionScript 1.0 ・要 Flash MX 以上(Flash 8 も MX 以上に含まれる) ・要 Flash Player 6 以上用 SWF にパブリッシュ こうしてできたSWFを HTMLに 横100% 縦100% で貼り付けます。   

  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.1

即席の回答でもうしわけわりませんが... この辺とか(下矢印)(#2回答はAS3 です。 #1回答 のものに関連リンクがあります。) http://oshiete1.goo.ne.jp/qa5140171.html または Google で 「Flash リキッドレイアウト」 などと検索してみるとか。 http://www.google.co.jp/search?hl=ja&source=hp&q=Flash+%E3%83%AA%E3%82%AD%E3%83%83%E3%83%89%E3%83%AC%E3%82%A4%E3%82%A2%E3%82%A6%E3%83%88 すれば,答えが見つかる気がします。

関連するQ&A

  • ムービークリップとインスタンス

    「ライブラリ内にあるのがムービークリップで、それをステージに配置したものがインスタンスである。」このように理解しているのですが、これは間違いでしょうか? 1、「MCを一つ作成し、それをステージ上に3カ所に配置し、各"MC"に01、02,03とインスタンス名を付けた。」 2、「MCを一つ作成し、それをステージ上に3カ所に配置し、各"インスタンス"に01、02,03とインスタンス名を付けた。」 上記の場合どちらが正しいのでしょうか? ムービークリップとインスタンスについてご教授ください。 よろしくお願いします。

    • ベストアンサー
    • Flash
  • Flash リンケージ

    ステージ上に空のムービークリップを配置して、そこにjpg画像を読み込む実験をしています。 loadMovieを使えば、外部のjpg画像を読み込めるのですが、 今やりたいのはflash内に画像を読み込んで、ライブラリ内にあるビットマップ画像(jpg)に対して、識別子を付けてスクリプト処理で表示させるというものです。 1.ステージに空のムービークリップ「mc」(←インスタンス名)を配置しています。 2.ライブラリ内のビットマップ画像には「p1」という識別子を付けています。 「p1」の識別子を使った表示方法が解らなかったので、とりあえず今はビットマップ画像を一旦新しいムービークリップで包んでそのムービークリップの識別子を「c1」として、 ルート上に mc.attachMovie("c1,"mc2",1); というように書いて、表示させています。 が、これではやりたい事と違います。 ライブラリ内のビットマップ画像に付けた識別子「p1」を利用して、 その該当するjpg画像をステージ上に配置(表示)させるにはどうすればよいでしょうか? FlashのバージョンはMXもしくは8 ASは1.0もしくは2.0です。

  • パスの書き方 AS3

    シーン1にムービークリップ(インスタンス名mcop)を配置し、mcopの1フレームにムービークリップ(mc)とobject1(グラフィック)を配置、mcの1フレーム目にアクションスクリプト(ActionScript3)を配置します。 アクションスクリプトからobject1を非表示にする指示を出したいのですがうまくできません。 パスの書き方をアドバイスください。(同階層ではうまく非表示に出来ます。) root.mcop.object1.visible = false;  こんな感じでやってみましたがだめでした。

    • ベストアンサー
    • Flash
  • ムービークリップを1コマ飛しで再生

    シーン1上にムービークリップ(インスタンス名mc)とボタンを配置します。ボタンを押すとタイムラインを1コマ飛ばしで再生するにはアクションスクリプト3をどのように記入すればよいでしょうか? (再生はループしボタンから離れると止まる)

    • ベストアンサー
    • Flash
  • AS3.0 配置したインスタンスにswfの読み込み

    初歩的なご質問です。 AS3.0にて、ステージ上に配置したムービークリップ(インスタンス名:mc)に外部swf(test.swf)を読み込みたいのですが、、どうもうまくいきません。 わかりやすく申しますと、AS2.0形式では mc.loadMovie("test.swf"); となっているスクリプトをAS3.0で行いたいです。 拙い文章で恐縮ですが、よろしくお願いいたします。

    • ベストアンサー
    • Flash
  • ブラウザの高さのみにあわせて伸縮するムービークリップのスクリプトについて

    よろしくお願い致します。 ステージの縦横中央に、800px×500pxのムービークリップ(インスタンス名:contents)を配置しています。 ステージの縦の長さが700pxより大きければ、contentsの大きさを800px×500pxで固定して、700px より小さければ、ステージの縦の大きさに合わせてcontentsを縮小させていくスクリプトを書きたいと思っています。 ブラウザに合わせてムービークリップを拡大・縮小させるスクリプトは分かるのですが、ステージの縦の高さ のみに限定して縦の高さが700px以上のときはムービークリップの大きさを固定する、というのがよく分かりません。 どなたかお分かりになられる方がいらっしゃいましたら、どうかご教授下さいますようお願い致します。

    • ベストアンサー
    • Flash
  • ムービークリップ内のボタン

    フラッシュ初心者です。 アクションスクリプトがうまく動かず困っています。 シーン1にムービークリップ1(インスタンス名:mc1)とムービークリップ2(インスタンス名:mc2)が置いてあります。 mc2の中にはボタンAを配置してあり、ボタンAをクリックすると、mc1のフレームラベル(B)に飛ぶような制御をしたいです。 ボタンAに記述してあるスクリプトは以下です。 on (release) { this._parent.mc1.gotoAndplay("B"); } しかしクリックしても全く動きません。 絶対パスで指定してもダメでした。 ちなみに、ためしに、mc1ではなく、シーン1上のフレームラベルに 飛ばすように記述したら普通に動きました。。 何か記述間違いがあるのでしょうか? 分かる方がいましたら教えてください。 お願いします。

  • <Flash>ムービークリップにアクションスクリプトを記述できない。

    <ムービークリップ>インスタンスにアクションスクリプトを 記述するために、スクリプトペインを開くと、 「現在の選択範囲にアクションを割り当てることはできません」 と表示されます。 きちんとムービークリップ化していますし、 インスタンスも選択しています。 でもフラッシュを勉強して間もないので、 おそらく根本的ななにかに気づいてないのだと思います。 書籍に書いてある通りに作業を進めているのですが、 うまくいきません・・・。 書籍に付属しているサンプルデーターでは、 きちんとムービークリップにスクリプトが記述されています。 バカな質問になっているかもしれませんが、 宜しくお願いいたします。

  • attachMovieで生成したインスタンスへの文字代入

    FlashMX(AS1.0)を使用しています。 ダイナミックテキストを子にしたムービークリップのインスタンスをattachMovieで配置したのですが、ダイナミックテキストに文字列を代入しても文字のみが表示されません。 試しに、duplicateMovieClipでコピーした場合はダイナミックテキスト内の文字は表示されています。 スクリプトは以下のように組んでいます。 (略) 1:cnt++; 2:samp_mc = "tag"+cnt; 3:_root.attachMovie("sym_ln",samp_mc,cnt);//sym_ln...ダイナミックテキストを含んだシンボルのリンケージ 4:samp_mc.dymtxt = "123";//dymtxt...ダイナミックテキストの変数名 インスタンスを配置してもdymtxtに表示されません。が、 3:base_mc.duplicateMovieClip(samp_mc,cnt);//base_mc...ステージに配置したmcのインスタンス名 とすると表示されます。 attachMovieを使用してインスタンスを配置するようにしたいのですが、文字が表示されないのはどこに原因があるのでしょうか?

    • ベストアンサー
    • Flash
  • Flash AS3.0 初歩的な質問

    現在AS3.0を勉強中です。 基本中の基本だと思いますがパスが上手く通っていないようなので ご教授願いたく。 1.ステージ上にテキストボックス(ダイナミックテキスト)を配置しインスタンス名を「hako」としています。 2.rootに以下のスクリプトを記述 ------------------------------------------------- addEventListener(Event.ENTER_FRAME,syori); function syori(eventObject:Event):void { hako.text=String(stage.mouseX); } ------------------------------------------------- ここまでは問題なく動作しています。 2をrootでは無く任意のムービークリップから処理させるべく・・・ 3.「abc」というインスタンス名のムービークリックを作成しステージに配置。この1フレーム目に以下のスクリプトを記述 ------------------------------------------------- addEventListener(Event.ENTER_FRAME,syori); function syori(eventObject:Event):void { parent.hako.text=String(stage.mouseX); } ------------------------------------------------- ※この際、2でrootに記述したスクリプトは消しています。 これで動くと思ったのですがエラーがでます。(ToT;) 「parent.hako.text」の部分を「root.hako.text」としてもエラーがでます。「_parent」も「_root」も駄目です。(「_」付はAS2.0までですよね?) 今回はダイナミックテキストは使った例ですが、 単純にムービークリップをステージに配置して、その座標を指定するような処理でも、 他のムービークリップから別のムービークリップを参照する方法が解りません(汗) どうすればよいでしょうか? AS2.0までは上記のような形でパスが通ったと思うのですが・・・

専門家に質問してみよう