
本体SWFに、「外部SWFのファイル名」と「リンク先」が書かれたXMLを読込んでいます。
本体SWFで外部SWFを表示させ、そのSWFにリンク(A)を設定しています。
(図の様な感じです)
このリンク(A)は効くのですが、外部SWFにはファイル自体にリンク(B)を設定しているのですが、このリンク(B)が効かないので、困っています。
ActionScriptは3で書いています。
【外部SWFに書いたリンクの設定】は、
btn.addEventListener(MouseEvent.CLICK,clickHandler);
function clickHandler(e):void {
var url:URLRequest = new URLRequest("http://goo.ne.jp/");
navigateToURL( url, "_blank");
}
..................です。
ActionScript2で、on(release)で書いたものを
読込んだ場合はちゃんとリンクしたのですが、
どのようにしたらよいのでしょうか。
ご教授お願いいたします。

No.1ベストアンサー
- 回答日時:
外部XML とか 外部SWF とかは関係なくて
navigateToURL を 複数回 連続で 実行しているところが問題なのではないでしょうか。
メインのSWF 「main.swf」 と 外部SWF 「gaibu.swf」 が同じフォルダにあるとします。
「gaibu.swf」 内には 「btn」 というインスタンス名のボタンが用意してあって,
そのボタンが存在するフレームに
-----------------------
btn.addEventListener(MouseEvent.CLICK,clickHandler);
function clickHandler(e):void {
var url:URLRequest = new URLRequest("http://goo.ne.jp/");
navigateToURL( url, "_blank");
}
-----------------------
と書かれていらっしゃるわけですよね。
また単独で 「gaibu.swf」 を開いた場合は
ボタンをクリックすると 「goo」サイト が別窓で開かれるのですよね。
そこまでは問題ありませんよね?
そこまで問題がなければ
その 「gaibu.swf」 をロードする 「main.swf」 のフレームには
次のようなスクリプトを書きます。
----------------------------------
//ローダーの作成と外部SWFのロードと配置
var my_req:URLRequest=new URLRequest("gaibu.swf");
var my_ld:Loader = new Loader();
my_ld.load(my_req);
this.addChild(my_ld);
//ローダーをクリック時に clickHandler を実行
my_ld.addEventListener(MouseEvent.CLICK,clickHandler);
//clickHandler の定義
function clickHandler(e:MouseEvent):void {
//タイマーインスタンスを作成(1000ミリ秒後に1回実行)
var myTimer:Timer = new Timer(1000, 1);
// timerHandler を指定ミリ秒後に実行
myTimer.addEventListener(TimerEvent.TIMER, timerHandler);
//タイマースタート
myTimer.start();
}
//timerHandler の定義
function timerHandler(e:TimerEvent):void {
//OKWaveをリクエストとするURLRequestを作成
var url:URLRequest=new URLRequest("http://okwave.jp/");
//そのURLを別窓で開く
navigateToURL( url, "_blank");
}
----------------------------------
これでパブリッシュして
表示された「main.swf」 内の「gaibu.swf」内のボタンをクリックすると
「goo」と「OKWave」が開くと思います(多分)。
navigateToURL の連続実行は失敗します。
そもそも複数ページが同時表示されるようにリンクを張ること自体がナンセンスですよ。
いわゆる「ブラクラ」行為です。
AS2 の getURL の頃は 複数窓を同時に開くことはできたと言っても
そういう質の悪いこと(質の悪い行動に結びつくこと)は
ブラウザのセキュリティによってはばまれていた可能性が大きかったと思います(確かMacとかでは通用しなかったような?)。
上の例では一応1秒の実行間隔をとっていますが
これでも一般的には良い行為だとは決して言えません。
詳しく書いていただいてありがとうございます。
なるほど、navigateToURLをたしかに連続実行しています。
おっしゃられる通り、複数ページが同時に表示されるのは、よくないですよね。
AS2 の getURL を「gaibu.swf」に張った場合、
「gaibu.swf」に設置したボタンを押すと、
「main.swf」のリンクは実行されずに、「gaibu.swf」内のリンクだけが開いたので、
(1ページだけ開いたので)
これと同じことを、AS3 の navigateToURL を「gaibu.swf」に張ったのですが、
たしかにnavigateToURLを連続実行してしまっています。
リンクの設定は、場所を固定するか、どちらか一方に張ることにします。
的確にご指摘いただき本当にありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
potplayerについて質問です
-
FLASHでゲームを作っていた人は...
-
この曲はなんでしょう?
-
laptop go2からの買い替え、lap...
-
スクリップト
-
私のコンピューター上のファイ...
-
arduino プログラムについて
-
chrome flash
-
FLASHの再生はできないのでしょ...
-
フラッシュゲームアーカイブ2
-
ウェブサイトで Flash が事実上...
-
Flashコンテンツを使ったWebサイト
-
Flash Playerのサポートが終了
-
Form内のselectを連動させるに...
-
Flashをブロックしないで
-
ダウンロードしたデジブックはa...
-
ad or script について
-
Flashplayerの運用について
-
VBAのコンボボックスの年月表示...
-
Adobe Flash Player
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
2つのSWFを連続再生する方法を...
-
addChildしたオブジェクトを完...
-
loadingを置く場所
-
サポートされたファイル形式お...
-
PDFファイルの倍率を変えて保存...
-
複数のブックを新しいブックのS...
-
e-taxで送信ファイルの拡張子が...
-
個別に違う添付ファイルを付け...
-
【VBA】マクロの入ったファイル...
-
拡張子「.IDJ」を、windo...
-
PC内で速度を遅くした音源をCD...
-
ガラケーからPCへの写真の取り込み
-
エアコンの冷媒 R410Aの重...
-
エクセルで「特定の文字を含む...
-
GIMP separate+プラグイン クラ...
-
A4の紙に印刷されている文字を...
-
TextBoxにフォーカスを与えると...
-
USBメモリとSSDのデータの保存...
-
Visual Basic.NETの、Form 間で...
-
このページではAC_RunActiveCon...
おすすめ情報