actionscriptを使用してフレックスのボタンまたはリンクボタンをクリックしたときにページをブックマークするにはどうすればよいですか
3 に答える
以前の回答の情報に基づく実用的な例:
ブックマーク.js(これをhtml-templateディレクトリに追加します):
function CreateBookmarkLink(title, url)
{
if (window.sidebar) { // Mozilla Firefox Bookmark
window.sidebar.addPanel(title, url,"");
} else if( window.external ) { // IE Favorite
window.external.AddFavorite( url, title); }
else if(window.opera && window.print) { // Opera Hotlist
return true; }
}
次に、この行をindex.template.htmlに追加します。
<script src="bookmarks.js" language="javascript"></script>
これで、次のコード( bookmarks.mxml)で呼び出すことができるFlexアプリケーションを「ラップ」するJavaScriptコードができました。
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
<![CDATA[
public function AddBookmark() : void
{
ExternalInterface.call("CreateBookmarkLink",
"Stack Overflow",
"http://www.stackoverflow.com");
}
]]>
</mx:Script>
<mx:Button x="10" y="10" label="Bookmark!" click="AddBookmark()"/>
</mx:Application>
IEでテスト済み。
そのためには、javascript を使用する必要があります。SWF をホストしている HTML ファイル内のページをブックマークする JavaScript 関数を作成し、ExternalInterface を使用して SWF 内からその関数を呼び出すだけです。
ブックマーク用の JavaScript 関数の例を次に示します: http://labnol.blogspot.com/2006/01/add-to-favorites-ie-bookmark-firefox.html
ExternalInterface の使用方法に関するFlexドキュメントは次のとおりです。
私の知る限り、アクションスクリプトから直接それを行うことはできません。ただし、クラスを unsing する actionscript から javascript を呼び出すことができます。Web にはExternalInterface、ブックマークを作成するための JavaScript 関数があふれています。たとえば、これを見てください(私はテストしていません)。