すみません質問です。
フラッシュで別ウインドウを開くswfをつくり、それは
正常に動いているのですが、そのhtmlを別のフレーム
セットhtml(2分割フレーム)の
フレームの一つに埋めて扱ったところフラッシュ中からhtmlが
開かなくなりました。
どうしたら良いでしょう。
別ウインドウを開くhtml⇒swf.html
フレームセットのhtml⇒flameset.html
としたとき、
swf.htmlはflameset.htmlの中にフレームの一つとして
入っている状態です。
swf.htmlを単独で開いた場合はその中のswfから
別フレームを開くことが出来ます。
フレームの一つとした状態からだと駄目なのです。。
よろしくお願いします。
No.3ベストアンサー
- 回答日時:
#02です。
js--------------------
<script language=javascript>
function alt(){
alert(this.window.location);
}
</script>
as--------------------
on(release){
getURL("javascript:alt();");
}
上記、拝見しました。特に間違いはないかと思うのですが、私も参考書を参照しましたが、間違いはないと思います。強いて言うなら、
as--------------------
on(release){
this.getURL("javascript:alt()");
}
でどうでしょう?
この回答への補足
たびたびの回答ありがとうございます。
また、いただいたアドバイスを使って修正してみましたが、やはりうまくいきません。
alertの表示が出来なかったことから、javascriptとアクションスクリプトの
連携が取れなくなっている、バグか何かと判断せざるを得ないようです。
ためしに、javascript側からフラッシュ内のMCを動かすスクリプトを書いても、
やはり「子フレームとして扱った場合のみ」うまくいきませんでした。(以下のもの)
(自身のフレームがF-sitaの場合のみ、checkerMCを2フレーム目に移動)
<script language="javascript">
if(top.frames[1].name=="F-sita"){
window["pt"].TGotoFrame("_flash0/checker",2);
}
</script>
仕方がないので、隠しフレームを設け(name=hidden,height=0)、フラッシュからは
target=hiddenの形で別のhtmlを開き、その開かれるhtmlに
onLoadで本来の目的のwindow.openを仕掛けました。
これなら、swfからはJSを直接干渉していないので目的は達成できるのですが、
フレームの遷移の関係で、opener.parent.frames のページ全体の
ユーザビリティが悪くなってしまいました。(ブラウザの戻るボタンを)
押しても、swfのフレームの見える部分が戻らない(hiddenフレームがユーザの
見えない部分で1ページ戻ってるから。)
どうしようもないって感じです。
flashにjavascriptのwindow.openを直接埋め込むようなことって
出来ないでしょうか。
どうもこんばんは。
いろいろとご相談させていただきましたが、解決しました。
結論をいうと、ActionScript JavaScriptともにまったく問題はありませんでした。
ではなぜ動かなかったかというと、Framesetを作っている(親フレームの)htmlと
子フレームの(swfの入っている)htmlがそれぞれ帰属するドメインが違って
いたからのようです(実は)。
全然違うサイトの管理者が他の管理下にあるhtmlを勝手にフレームに取り込んだり
ましてやjavascriptを動作させるなどセキュリティ上とんでもない
という都合のようでした。
確かにフレームを使っての勝手なページの取り込みなんかを無制限で
許可してしまうと、scriptによっては関数名やobject名の重複や混在が
発生しやすくなり、ユーザに被害に合わせてしまう恐れが高くなります。
マウスオーバーでのスワップイメージ程度ならともかく、window.openなどになると
物騒ということで、無効化されていたのかもしれないです。
まーはっきりとはわかりませんが、、。
とにかく、ありがとうございました。
大変助かりました!
No.2
- 回答日時:
上下2分割のフレーム(frameset.html)には、上のフレームには「top.html」があり、下のフレームには、「xxx.swf」を配置した「swf.html」があるわけですよね。
それで、xxx.swf内に例えばボタンがあって、そのボタンを押すと、新たに小さいウィンドウが出ればいいのかな?
「swf.html」側にJavaScriptを記述すると思うのですが...。
例えば、
<head>~</head>の間に
<script language="JavaScript" type="text/JavaScript">
<!--
function popUpWindow(fileName, windowName){
var windowStyle='channelmode=no,directories=no,fullscreen=no,location=no,menubar=no,resizable=no,scrollbars=no,status=no,titlebar=no,toolbar=no,top=100,left=100,width=300,height=300';
window.open(fileName, windowName, windowStyle);
}
と記述して、
「xxx.swf」のリンクのアクションスクリプトを使って、例えばボタンのシンボルだったら、ボタンのシンボルを選択して、
on(release){
this.getURL("JavaScript:popUpWindow('hirakitai.html','newWindow')");
}
で新しい横立て300pxのウィンドウが出ると思うのですが...。
この回答への補足
丁寧な回答ありがとうございます。
今までの自分のやり方では、フラッシュのボタンに書くアクションスクリプトには
実行するJavaScriptの関数名( openIt() )だけを書き
関数名後ろの引数は書かなかったのですが、
(htmlのjavascriptに開くURLその他を全て書いていたので)
いただいたアドバイスの通り、開き先のURL位はフラッシュ内の
ボタンに書いたほうがいいのかも知れません。
ためしにこの方法でやってみて、またご報告させていただきます。
ただ、投稿させていただいた動作不良は、WIN版IEでのみの現象で、
ほかのブラウザなどではちゃんと動いていたのが気になります。。
(その後、複数の環境で確認してみました)
WIN用IEのバグかもしれません。。
最悪ですが・・・。泣。
ごぶさたしてます。
いただいたアドバイスの通り、フラッシュの内部のボタンのactionScriptに
開かれるウインドウのurlその他の引数をつけてみたのですが、
やはりうまくいきません。
どうしたら良いでしょう?
なんだか、フラッシュとJavascriptの連携がうまくいっていない感じです。
ためしに、ウインドウを開くjavascriptの代わりに、自分自身のURLを
参照してalert表示するスクリプトをフラッシュからたたかせても
うまくいきませんでした。
js--------------------
<script language=javascript>
function alt(){
alert(this.window.location);
}
</script>
as--------------------
on(release){
getURL("javascript:alt();");
}
こんな感じです。
どうしたら良いんだろ?
html全体に問題があり、それがエラーを起こしているのかなぁ・・。
No.1
- 回答日時:
フレームから飛ぶ場合は
url=get url
ウインド=_parent
ですか?
意味がちょっと分かりませんでした。
この回答への補足
すみません、意味通じにくかったみたいで。。
フラッシュから子ウインドウを開くテクニックがありますよね。
それは出来るんです。
(そのフラッシュのswfファイルが乗っているhtmlに
window.open("hoge.html","name","features")の
javascript関数を記述して、フラッシュのActionScriptからは
そのjavascriptを実行させる)
仮に、このhtmlをswf.htmlとします。
それとは別に、フレームを切っているhtmlをflameset.htmlとします。
で、このflameset.htmlに子フレームとしてswf.htmlが入っているわけです。
flameset.htmlのソース的には
<flameset rows=50>
<flame src=top.html>
<flame src=swf.html>
</flameset>
って感じです。(top.htmlはなんでも良いです)
んで、この状態になると、下フレームにあるswf.htmlの中のフラッシュから、
子フレームが開けなくなってしまうのです。
どうやったら、問題解決するかなぁと。
よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript スマホ上で、左右スワイプで次のページに移動させたいです 2 2022/11/11 17:04
- サングラス・カラコン いつもしていた眼鏡が壊れ生産中止で同じ形色のフレームは? 5 2023/05/07 11:01
- C言語・C++・C# 【C++】IDirect3DSurfaceのディープコピーは可能ですか? 1 2022/07/06 02:47
- 画像編集・動画編集・音楽編集 Corel VideoStudio Pro X8 で、SWFをmp4に変換する方法 1 2022/05/06 22:19
- その他(ファッション) スポーツメガネでフレームの色は白などはあり? 2 2022/11/30 07:26
- その他(病気・怪我・症状) 生前に骨格の補強手術で金属製のフレームを体に入れてあるような場合、後になってその人が亡くなり火葬した 2 2023/08/06 22:20
- ドライブ・ストレージ HDDを5台入れられる金属フレームは売っているでしょうか? HDDを5台くらいをスライドさせて入れて 3 2022/05/11 05:43
- メガネ・コンタクト・視力矯正 眼鏡が小さくて横や後ろが見づらい 6 2023/07/04 08:49
- メガネ・コンタクト・視力矯正 失敗した高額メガネ 6 2022/12/03 23:11
- 家具・インテリア ダブルのベッドにクイーンのマットレス 5 2023/02/11 08:35
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
上のフレーム内のプルダウンメ...
-
2ページにまたがる画像のダブ...
-
「index.html」の名前の付け方...
-
<IFRAME>でコンテンツ部分のみ...
-
カンマ区切り形式ではなく、セ...
-
リンクをアップデートするしな...
-
パワーポイントで参照ページを...
-
キングファイルの背表紙を作成...
-
VBAでマルチページのページ指定...
-
トロッファとは何ですか??
-
エクセルで置換リストを別ブッ...
-
HTMLタグを一括消去する方法
-
直リンク禁止 hを抜くだけでOK?
-
Ctrl+Hで置換にならない
-
エクセルVBAでマルチページの切...
-
UserForm.showでマルチページ1...
-
ExcelのROUND関数を一括解除し...
-
ひろゆきの悪影響
-
vbaで実行後、指定のセルに戻す...
-
文字を一括で置換するソフト・...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
30fpsから60fpsに変換する方法
-
2ページにまたがる画像のダブ...
-
Aftereffectsキーフレームが勝...
-
フレームを解除したい
-
HPビルダーでリンク先を別のフ...
-
AviUtlでのフレーム間引きの方...
-
画像編集ソフトを探しています
-
DVから一定時間ごとに静止画を...
-
フレームレート変更の仕組み
-
HPビルダーV6 フレーム(3分割...
-
上のフレーム内のプルダウンメ...
-
FC2でのフレームの作り方(超初...
-
Adobe Premiere でフレームサイ...
-
Frashの地図作成について。
-
ホームページビルダーのフレー...
-
Dreamweaverで画面表示サイズを...
-
ホームページ作成 フレーム ...
-
PowerDirector 13でのズームア...
-
フレームで http:// を含むペ...
-
NIVE使い方
おすすめ情報