トップへ戻るニュースフォーラムFLASH-ML 過去ログBak@Flaダウンロードよくある質問と答
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   コーダーズルーム【スクリプト系】
     各種バーを消して別ウィンドウを表示させたい
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
amateur
Åê¹ÆNo.30568
投稿日時: 2006-12-6 15:26
新米
居住地: 福岡県
投稿: 17
使用環境:
各種バーを消して別ウィンドウを表示させたい
こんにちは amateurです。
各種バーを消して別ウィンドウを表示させたいのですが、
現在ボタンに
引用:

on (release) {
_root.getURL("java script: window.open('member_list/fujiki/index2.html','sub','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=656,height=772');void(0);")
}

と記述して作っていたのですが、この記述だと、
「MacOSX 10.3.9 + IE 5.2.3 + FlashPlayer 9.0r16」の環境だと
ページが開かないのです。
ですが、

引用:

on (release) {_root.getURL("member_list/eguchikaho/index2.html","_blank");
}

と、記述すると開くようになりました。
ですが、これだと各種バーが表示されてしまいますよね。

java script: window.open(***);と記述せずに各種バーを
消してウィンドウを表示させる方法は、ありますでしょうか。

みなさん、よろしくお願いします。
Fla4man
Åê¹ÆNo.30573
投稿日時: 2006-12-6 23:21
職人
居住地: かまくら
投稿: 517
使用環境:
Re: 各種バーを消して別ウィンドウを表示させたい
http://www.flash-jp.com/modules/newbb/viewtopic.php?topic_id=5434&forum=11
http://www.flash-jp.com/modules/newbb/viewtopic.php?topic_id=5209&forum=11
というはなしもあります。

MacIE + Flash9でのWindow制御というのは考えない方がいいと思います。
getURLも_blankだけ位に考えたほうが良いようです。
そもそもブラウザは無償で入手できるものであり現在IEは「無理して使う」ものなので
Safariなりfirefoxを使わないような人はFlash player9を入れません。

OSとブラウザをチェックして
最初の書きかたでだめだったら_blankにするのがよさそうです。

Flash8にしてExternalInterfaceでjavascriptを呼び出す方法か
非表示のMCをWindowsとして画面内に表示させる方法を検討してみてください。
作成済みの子WindowにFlashをおいて通信するなど解法はそれなりにありますが
時間をかけるべきところでは無い様に思います。


----------------
通常のハンドル名:×○○× ねた回収モードに突入 現在1/100

amateur
Åê¹ÆNo.30590
投稿日時: 2006-12-7 13:19
新米
居住地: 福岡県
投稿: 17
使用環境:
Re: 各種バーを消して別ウィンドウを表示させたい
Fla4manさん、コメント有り難うございます。

やはり、難しいようですね…
引用:

Flash8にしてExternalInterfaceでjavascriptを呼び出す方法か
非表示のMCをWindowsとして画面内に表示させる方法を検討してみてください。
作成済みの子WindowにFlashをおいて通信する

これらはどのようにして行うのですか?
スクリプトに関しては初心者なもので…(^_^;)
Fla4man
Åê¹ÆNo.30605
投稿日時: 2006-12-8 1:11
職人
居住地: かまくら
投稿: 517
使用環境:
Re: 各種バーを消して別ウィンドウを表示させたい
これがMacIEでちゃんとうごくか確認していないということと
WinIEだといくつか問題がある事
そして多分このスレがhtmlにソースが無くかつgetURLを使っていない
稀の例でであるということを念頭に入れておいてください。

FlashからJavascriptを呼び出すには基本的には
flash.external.ExternalInterface.call
を使います。

JavascriptのOn OFFは例えば以下のコードでフラグ(仮にJf)を取得できます。

if (flash.external.ExternalInterface.call('escape','1')=='1'){Jf=true;}else{Jf=false;} ;

マニュアルだとaddCallbackでフラグを取る感じですがIEではoffでもtrueを返します。

今回のように
Windowsを開いたりするときなどはeval関数でjavascript命令を送ります。

flash.external.ExternalInterface.call('eval','window.open("****.html","_blank","width=320,height=240");Void (0);');

実はIE6ではJavascriptをOFFにしても値がかえらないだけで
JavascriptOFFでも動きます。(WinME+ IE6で確認)

またコードを間違えるとフリーズします。
例えば上記コードで末尾にVoid(0)がなければ、JavascriptOFFでもクラッシュします。
この件をここに書くのは1行でクラッシュするスクリプトなどすでに公にされているからです。
無論WIndowsのIE以外は動作もクラッシュもしません。(OFFだと)

AlertBOXなども出せてしまうのでFlash廃絶につながりかねないかなり致命的なセキュリティホールだといえます。
(AlertBoxはそのままかいてクラッシュしない)

話を正規の使い方に戻します。
この基本フレームワークで
新規関数の設定等もevalを使えば簡単に出来るしオブジェクト型変数であれば返り値が取得できます。

ex.
JsC=flash.external.ExternalInterface;//階層が深いのでオブジェクトインスタンスを変数化します。
URL1=JsC.call('eval','window.location.href');//URL取得

JsC.call('eval','js2=function(){return window.location.href;};void(0)');//関数の定義
URL2=JsC.call('js2');

など

Flash側で使っている命令は全て「テキスト」であり特殊なバイナリーは使われないので
設定すればFlash2004で組むことが可能なスクリプトです。

当然アクティベートの類もFlash単体で可能ということです。

またgetURLを使っていないのでActive-X型のWindowsアプリケーションに対応させられるのも特徴です。
このフレームワークの第一目標はそこでした。

Javascript OFFで小窓とかアラートボックス出せるのは無しにして欲しいなぁ。


----------------
通常のハンドル名:×○○× ねた回収モードに突入 現在1/100

スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を
 
Copyright (C) 2003 FLASH-japan. All rights reserved.
Powered by Xoops