プロが教えるわが家の防犯対策術!

ボタンシンボルを作成して、そのボタンシンボルにアクションスクリプトを使用して、ブックマークに登録出来るようにしたいのです。
そのボタンをクリックする事によって、そのサイトがブックマークに登録出来るようなアクションスクリプト(の記述)を使いたいのですが、どなたか解る方がいましたら教えてください。よろしくお願い致します。

A 回答 (1件)

やれやれと.......。


質問者さんだけに言っているわけではありませんが,せめて Flash のバージョンくらいは書きましょう。
ActionScript に関するご質問の場合は,使用する ActionScript のバージョンもあったほうが望ましい(必要)です。
私はここかしこで 何度も 何度も 何度も 何度も 何度も 何度も 何度も 何度も 何度も 何度も 何度も 何度も 何度も ………
同じ内容のことを書いているのですが,
質問者の方はなかなかバージョンを書かれません/(-_-)ヽ。



--- --- ---

さて,ご質問の件ですが,基本的に 「Flash外」 のことです。
「ユーザのブラウザを操作する」=「Flash外」 ですよね。
「ユーザのブラウザを操作する」≒「JavaScript(& CSS & HTML)」 です。

Flash内に,そういうブラウザ操作系のボタンを用意する場合は,
「Flashのボタンからブラウザに向けて,そういうJavaScriptを実行するような命令を投げる。」
というプログラムを実行させるしくみを作ります。

しかし...,
ブックマーク登録JavaScript はブラウザによってまちまちですよ。

「ブックマーク(お気に入り)オブジェクト」 の クラス がそもそもブラウザによって違います。
IE だと window.external クラスに属するようです。
FF などだと window.sidebar クラスに属するようです。
Opera だと JavaScript ではなく HTML を使うとか。

質問 「使用者の閲覧しているページをブックマークするにはどうすればよいのでしょうか? 」
http://oshiete1.goo.ne.jp/kotaeru.php3?q=2249284

そもそもがそういう状況ですから
「お気に入りに追加」 ボタン自体をそうそう見かけないのです(あっても趣味サイトの遊び程度ボタンですね)。



"IE対応のみ" での,数例を書いてみます。


◎ ActionScript 1.0 ボタン自体に書く 【例1】

on (release) {
getURL("javascript:window.external.AddFavorite('Http://○○','Page名')");
}

※ Flash Player 4 以上(注:作成ツールは Flash 5 以上)
   この 注: について↑
   作成ツール Flash 4 は言語がこれとは全く違うので
   ここで書いたものは全く使えません。
   ActionScript 1.0 は Flash 5 以上の言語です。

※ Http:// の 頭の H は半角小文字の h にしてください。
  自動リンクで入る目に見えない文字の混入防止のためです。
  続く以下全ても同じです。
     ̄ ̄ ̄ ̄ ̄ ̄


◎ ActionScript 1.0 ボタン自体に書く 【例2】

on (release) {
flash.external.ExternalInterface.call("window.external.AddFavorite", "Http://○○", "Page名");
}

※ Flash Player 8 以上(作成ツールも Flash 8 以上)



--- --- ---

◎ ActionScript 1.0 フレームに書く 【例1】

bookmark_btn.onRelease = function() {
getURL("javascript:window.external.AddFavorite('Http://○○','Page名')");
};

※ Flash Player 6 以上(作成ツールも Flash MX 以上)

※ ボタンには 「bookmark_btn」 というインスタンス名を付けた場合です。
  「フレームに書く」とはボタンが存在するフレームの任意のレイヤーの
  キーフレームに ActionScript を書くという意味です。
  続く以下全ても同じです。
     ̄ ̄ ̄ ̄ ̄ ̄


◎ ActionScript 1.0 フレームに書く 【例2】

bookmark_btn.onRelease = function() {
flash.external.ExternalInterface.call("window.external.AddFavorite", "Http://○○", "Page名");
};

※ Flash Player 8 以上(作成ツールも Flash 8 以上)



--- --- ---

◎ ActionScript 2.0 フレームに書く 【例1】

bookmark_btn.onRelease = function():Void {
getURL("javascript:window.external.AddFavorite('Http://○○','Page名')");
};

※ Flash Player 6 以上(注:作成ツールは Flash MX 2004 以上)
   この 注: について↑
   Flash MX では ActionScript 1.0 までしか使えません。
   変数や関数の型指定は ActionScript 2.0 以降で可能。
   AS2 の 型指定は SWFパブリッシュ後に無効になるので
   Flash Player 6 でも動作します。
   (AS3 の型指定 は SWFパブリッシュ後も有効です)



◎ ActionScript 2.0 フレームに書く 【例2】

import flash.external.*;

bookmark_btn.onRelease = function():Void {
ExternalInterface.call("window.external.AddFavorite", "Http://○○", "Page名");
};

※ Flash Player 8 以上(作成ツールも Flash 8 以上)



--- --- ---

◎ ActionScript 3.0 フレームに書く 【例1】

bookmark_btn.addEventListener(MouseEvent.CLICK,setBookMark);

function setBookMark(evt:MouseEvent):void {
var myStr:String="javascript:window.external.AddFavorite('Http://○○','Page名')";
var myURL:URLRequest=new URLRequest(myStr);
navigateToURL(myURL,"_self");
}

※ Flash Player 9 以上(作成ツールも Flash CS3 以上)

※ これ↑は他との均衡で書いてみただけで普通は使いません。
  普通は次↓を使います。



◎ ActionScript 3.0 フレームに書く 【例2】

import flash.external.*;

bookmark_btn.addEventListener(MouseEvent.CLICK,setBookMark);

function setBookMark(evt:MouseEvent):void {
ExternalInterface.call("window.external.AddFavorite", "Http://○○", "Page名");
}

※ Flash Player 9 以上(作成ツールも Flash CS3 以上)



====== ====== ======

繰り返しますが 「ユーザのブラウザを操作する」 のです。
したがって,
SWF と HTML をパブリッシュして(または SWF を HTML に貼り付けて),
ブラウザでその HTML を開いて動作検証する必要があります。

あと,Flash Player 9 以降はセキュリティが変わったので,
こちらも検索しておく必要があるかもしれません↓。

Google「allowscriptaccess samedomain always」
http://www.google.co.jp/search?hl=ja&q=allowscri …


これだけ書けば,どれかに当てはまるのではないかと思います。
ただし,IE限定ですが。
逆に言えば最低これくらいは書かないとかすりもしない回答になるということになります。

ExternalInterface.call の普通の使い方は
HTML に記入した JavaScript の関数を SWF 内から実行するというものです。
したがって,
ブラウザの判定やもっと複雑なことをする場合は,
とりあえず JavaScript を完成させて,
そして その JavaScript の関数を Flash から実行するという方法を取る必要があります。
本題は Flash や ActionScript ではありません。

ブラウザの判定やもっと複雑なことをする場合,
JavaScript と ActionScript が絡む部分は,
上記の中で使うものに応じて,
「getURL JavaScript」 や 「ExternalInterface.call」 などと検索してみてください。



Flash は猛烈に進化し続けている "生きたソフト" です。
「バージョンアップしてもしなくても大差なし」 というような どこかの死んだソフトとは違います。

「昨日の真 は 今日の嘘」 です。
バージョン違いでできたりできなかったりするのは当たり前。
本やサイトを書いている時点では「真実」でも,
それを読んだ時点では「大嘘」になってしまうことは Flash ではしょっちゅう起こります。

ですから,質問をするにしてもしないにしても,
自分の使ってる作成ツールのバージョンくらいはせめてしっかり自覚して使い,
最重要ポイントとして押さえておくことが大切です。



↓下の図の画面は Windows 版 Flash 8 のものです。
  Flash MX ~ Flash CS3 は比較的似ていると思います。
  Flash 5 や Flash CS4 は全く異なります。
「アクションスクリプトでブックマーク登録ボ」の回答画像1
    • good
    • 0
この回答へのお礼

BlurFiltanさん。はじめましてこんにちわ。
お忙しい中、ご回答有難うございました…。早速ですが、ヴァージョンを言ってなくて誠に申し訳ございませんでした。BlurFiltanさんのおしゃっるとおり、ヴァージョンが解らないと…説明が大変になってしまいますね。本当にすみませんでした。Flash のバージョンはCS4です。そして、ActionScriptはヴァージョンは2です。BlurFiltanさんの言うように、「◎ ActionScript 1.0 ボタン自体に書く 【例2】」のやり方で記述しましたら、出来ました…ブックマークに登録出来るようになりまました。とても嬉しいです!本当に有難うございました。BlurFiltanさんのご説明は大変に細かくてわかりやすいです。お忙しい中、本当に有難うございました。

お礼日時:2009/07/24 20:40

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!