• ベストアンサー

flashサイトを作ってますが・・・

今、flashのサイトを作っているんですが(1つのhtmlにswfを入れボタンを押すと他のswfをloadMovieするような感じです。)高さがバラバラなflashのためかロードすると崩れてしまいます。もう少し詳しく言うと、 760*1100のswfから760*500のswfをロードするとスクロールバーがあり見えなくていいとこまで見ることができます。こうゆうページってのは一番大きものに合わせるようになっているんですかね? 500なら500、1100なら1100というように見せるにはどーしたらよいですか?教えてくださいお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#35109
noname#35109
回答No.1

ご質問内容が良く理解できませんでしたよ。 しかし,「某 GAC コミュニティ」 さんを,偶然にふと眺めていて, このご質問の内容が理解できました。 > http://www.draft.jp/ ←こんな感じ にしたいわけですね。 (他コミュニティであっても同じネット上ですから,  マルチポストは推奨されていませんよ...。) 結局,Flash のステージのサイズを変えるのですから,Flash の力だけでは無理です。 SWFファイルは,HTML上に表示されているのですからね。 動的に HTML の方を操作しないとならないのです。 そのサイト( http://www.draft.jp/ )のソースを見てもらってもわかりますが本体は JavaScript です。 JavaScript を Flash から実行させています。 しかし,そのサイトの JavaScript は複雑に絡み合っていて何が何だかよくわかりませんね。 HTML 外に 外部JavaScript もたくさん用意されていて,それらも実行させています。 もっとシンプルにしたものの作成方法を書きますから, 一度,次に書く通りのものを作成してみて, そのしくみを理解して, そこからカスタマイズしてみてください。 ==================== まず, Flash を起動させて,新規ドキュメントを作成します。 ステージのサイズを 横760px×縦1100 にしてください。 そして, 矩形ツールで,ステージ全体を何色かの塗りで塗りつぶしてください。 これは,拡大縮小をわかりやすくさせるための塗りですから, 白以外だと何色でもかまいません。 ステージ全体を何色かで塗れましたら, 新規レイヤーを追加して, そのレイヤーのステージ上の上の方に, ボタン(ボタンシンボルのインスタンス)を3つ作成してください。 ステージの上の方にボタンが3つ作成できましたら, さらに新規レイヤーを追加してください。 そこにスクリプトを書きます。  □ レイヤー 筆・・|○| ←スクリプト  □ レイヤー 筆・・|●| ←ボタン3つ  □ レイヤー 筆・・|●| ←大きな塗り 一番上のレイヤーのフレーム1を選択して, アクションパネルに次のように書いてください。 (コピペ可能です。) -------------------------- // 拡大縮小なし Stage.scaleMode = "noScale"; // 左上を基準にする Stage.align = "LT"; -------------------------- 次に,3つのボタンのうち,1つを選択して, そのボタンに次のように書きます。 --------------------------- on (release) { getURL("javascript:changeSize('760','300')"); } --------------------------- 3つのボタンのうち,もう1つを選択して, そのボタンには次のように書きます。 --------------------------- on (release) { getURL("javascript:changeSize('760','800')"); } --------------------------- 3つのボタンのうち,最後のボタンには 次のように書きます。 --------------------------- on (release) { getURL("javascript:changeSize('760','1100')"); } --------------------------- この3つのボタンには, HTML側に用意する JavaScript のユーザ定義関数 changeSize を実行させるためのスクリプトが書いてあるのです。 '760','300' とか '760','800' とか '760','1100' が, ユーザ定義関数 changeSize を実行させるときの引数になります。 ここまでできましたら, この Flashドキュメントに 「change_test.fla」 というファイル名を付けて, どこか任意のフォルダに保存してください。 ファイル名は実際は何でも良いのですが, この説明ではタグを一致させるため, 「change_test.fla」 限定にしておきます。 そして, SWFファイル 「change_test.swf」 と,HTMLファイル 「change_test.html」 をパブリッシュしてください。 パブリッシュしたものを開いてみても, 何の変哲もないボタンが3つ並んだだけの Flash が表示されるだけだと思います。 まだプログラム本体を用意していないので,何もおこりません。 「change_test.swf」 と, 「change_test.html」 をパブリッシュしたら, HTML である 「change_test.html」 を,ブラウザではなく, メモ帳などのテキストエディタで開いてください。 メモ帳などテキストエディタで開くと, そのHTMLのソースコードがズラーッと書かれてあると思います。 そのソースコードを全て次のように書き換えてください。 (全文コピペです。) ------------------------------------- <html> <head> <title>Change Size Flash</title> <script LANGUAGE="JavaScript"> <!-- // ユーザ定義関数 changeSize の定義 function changeSize(myX,myY) { if(document.all && !document.getElementById) { document.all['myFla'].style.pixelWidth = myX; document.all['myFla'].style.pixelHeight = myY; }else{ document.getElementById('myFla').style.width = myX; document.getElementById('myFla').style.height = myY; } } //--> </script> </head> <body leftmargin="0" topmargin="0" marginheight="0" onLoad="javascript:changeSize(760,200);"> <div id="myFla" > <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="100%" height="100%" id="change_test" align="middle"> <param name="allowScriptAccess" value="sameDomain" /> <param name="movie" value="change_test.swf" /> <param name="quality" value="high" /> <param name="bgcolor" value="#ffffff" /> <embed src="change_test.swf" quality="high" bgcolor="#ffffff" width="100%" height="100%" name="change_test" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" /> </object> </div> </body> </html> ------------------------------------- そして, 「change_test.html」 という名前で上書保存してくださっても良いですし, 「他の名前.html」 でも良いですからこの HTML を同じフォルダに保存してください。 そしてその保存した HTML をブラウザで開き, 表示されているはずの Flash のボタンをクリックすると, Flash のサイズが動的に変わって, スクロールバーが表示されたり非表示になったりするものができると思います。 もし,うまく動作しましたら, この先はカスタマイズしてください。 ただし, 私は Windows で IE6 で JavaScript を有効にした環境でしか動作確認していません。 Windows で IE6 以外では動作しないかもしれません。 また, JavaScript を無効にしているブラウザでは何も動作しません。 できたことはできたとしても, 環境によってどうなるかがわからないので, そこら辺の対応の方が難しいと思います。 そういった色々な対応処理をすると, 結局,複雑な http://www.draft.jp/ さんと同じようなものになるかもしれません。 ◎参考URL (私が参考にしたURL) ここのコミュニティでも,某GACさんでもありませんが↓。 「FLASH-JP.COM - フォーラム」 ActionScriptからステージサイズを変更できますか? http://www.flash-jp.com/modules/newbb/viewtopic.php?viewmode=flat&topic_id=778&forum=6

h-wood
質問者

お礼

sassakunさん返信どうもありがとうございます。とても参考になりました。 わたしもドラフトのソースを見てhtmlのスクリプトで動かしているのにこないだ気づき、flashだけではとあきらめかけていました。 ちなみにsassakunさんの言うとおりに作ることはできたんですがjsの設定をしないと見れません。しかも私はmacなのでIEだと設定することもできませんでした。firefoxやネスケだと設定して見ることはできるんですが、それをHPにして見る側に設定させるなんてとてもナンセンスですよね(^^; しかし私的にはとても勉強できたのでよかったです。またなにかありましたら・・・

すると、全ての回答が全文表示されます。

関連するQ&A