03-24-10

FlashPlayerは潜在的に危険な操作を停止しましたの回避策

ローカルでswf再生したとき、またはgetURLやnavigateToURLでページ遷移しようとしたときに、Adobe Flash Playerは潜在的に危険な操作を停止しました。というアラートがでたことあるかと思います。「Adobe Flash Playerは潜在的に危険な操作を停止しました」の回避策とグローバルセキュリティ設定の方法を紹介します。

グローバルセキュリティ設定方法

グローバルセキュリティ設定
Flash Playerヘルプ:グローバルセキュリティ設定パネル
http://www.macromedia.com/support/documentation/jp/flashplayer/help/settings_manager04.html
このページにあるFlash部分の「編集」と書かれているプルダウンメニューの「追加」をクリックして、アラートを出しているswfファイル直接設定するか、フォルダー丸ごと設定するかのどちらかが選べます。すると、「これらのファイルとフォルダを常に信頼する」項目に追加されたと思います。設定はこれで終わりです。ボクはCドライブ全部にかけてます。あまり良くないかもしれませんけどね・・・汗

「Adobe Flash Playerは潜在的に危険な操作を停止しました。」のアラートは何を訴えているのか

簡単に言うと、ローカルで再生されるswfファイルが、別のページへ遷移するけどいいですか?と聞いてくれてるわけですね。もしそのswfファイルが誰が作ったかわからず、悪意があるswfファイル開いた瞬間にウィルスに感染してしまう。ってことになりえるかもしれません。それを未然に防ぐために、そのswfファイルは信頼できるかどうか。前項のグローバルセキュリティ設定パネルで設定して許可をしたということです。
このアラートが出る条件は以下のときに出ると思います。

・getURLやnavigateToURLなどのページ遷移する関数が書かれているswfファイルを、そのままダブルクリックで再生する
「Adobe Flash Playerは潜在的に危険な操作を停止しました。」のアラート画面
・htmlファイルにswfを貼り付けたファイルを、ローカルからブラウザで開く
「Adobe Flash Playerは潜在的に危険な操作を停止しました。」のアラート画面
・ボタンアクションなどでページ遷移しようとした瞬間
Flash Debug Playerが出したエラーログ画面

▼Flash Debug Playerが出したエラーログ

SecurityError: Error #2028: ローカルファイルシステムの SWF ファイル file://C:\hoge.swf はインターネット URL http://hoge.com/ にアクセスできません。
	at global/flash.net::navigateToURL()
	at MethodInfo-404()

▼ActionScript 3.0 コンポーネントリファレンスガイド:ランタイムエラー一覧

http://livedocs.adobe.com/flash/9.0_jp/ActionScriptLangRefV3/runtimeErrors.html#2028

getURLやnavigateToURLでページ遷移しない!ページに飛ばない!と言われたら

そもそもこのアラートが出るだけでもマシかもしれません。アラート自体がでない可能性もあるので、クライアントさんとかに確認してもらってる時に「ページ飛ばないよ」と言われたら、このアラートの可能性が高いと思います。確認出しの方法はいくつかあると思いますが、zipで圧縮してメールで送る場合、ローカルで再生される可能性があるので回避したい。でも、わざわざこの設定をしてもらうのもなんか悪い気がする。。。手っ取り早いのはサーバーにアップして、httpアドレスを直接ブラウザを介して確認してもらいたいところですが、公開してはいけない繊細なコンテンツの場合だと、グローバルセキュリティ設定をしてもらうしかないですね。

12-25-09

Flash Playerを切り替えるFlash Switcher Firefoxアドオン


Flash Swicher

Flashコンテンツの動作確認の際、FlashPlayerのバージョンを下げて確認したいことがあると思います。また、SWFObjectなどを使って、FlashPlayerのバージョンを満たしていないユーザーさんの為に代替コンテンツを表示させるとかの動作確認も必要な場合もあります。そんな時に便利なのがFlash SwitcherというFirefoxアドオンです。

Flash Switcherをインストール

配布先:Flash Switcher
http://www.sephiroth.it/firefox/flash_switcher/index.php
Mozillaのアドオン配布サイトではFirefox3.5はインストールできない。となってますが、本家のサイトからアドオンをダウンロードすると使えました。

Flash Playe ver.r3,4,5,6,7,8,9,10のインストールと設定

配布先:Archived Flash Players for testing purposes
http://www.adobe.com/jp/support/kb/ts/228/ts_228683_ja-jp.html
Adobeのサイトから過去のFlash Playerをダウンロードしてきます。ダウンロードした各zipファイルを解凍して、インストーラーを起動させてインストールしていくんですが、どこにインストールされたのかちょっとややこしいことになりました。。。インストーラーにもよるかもしれませんが、「NetScapeがありません!」というアラートがでたりしたので、インストール先が設定できる場合は、分かりやすいところにインストールして【NPSWF32.dll】というファイルがあるか確認してください。

Windowsでの設定方法


NPSWF32.dll

【NPSWF32.dll】のファイルにそっとマウスを乗せてください。するとそのファイルがFlash Playerの何のバージョンかがポップウィンドウで確認できると思います。Flash Player old
そのファイルを、新規フォルダを作ってその中に入れます。【3.0 r18】とか【7.0 r63】とかにボクはしました。Firefoxブラウザに戻って、右下にあるFlash Switcherのアイコンから【Settings】をクリックします。Local Repository Directoryできたフォルダーを、画像の上にある「Local Repository Directory」が指定しているパスの中に置いたら過去のFlash Playerの設置は完了です。

Firefox Plugins directory

Firefoxブラウザに戻って、右下にあるFlash Switcherのアイコンから【Settings】をクリックします。「Firefox Plugins directory」欄でdefaultの場所が、

C:\WINDOWS\system32\Macromed\Flash

となっているかもしれません。これでは正常に動作しないので、Firefoxのプラグインの場所を指定しましょう。
▼こっちが正解!

C:\Program Files\Mozilla Firefox\plugins

以上でWindows版での設定が完了しました。ポチポチ切り替えるとブラウザが一旦おちて再度立ち上がったときに、Flash Switcherのアイコンをクリックしてバージョンが切り替わっていたら成功です。

12-13-09

swfobject2.xの使い方

FlashをHTMLに貼り付ける方法の中でswfobjectsというJavaScriptでswfを表示させる方法が便利です。今更な感じもしますが、ボクが使ってて気になったところ、例えば表示した時、一瞬Flashの場所が抜けて、あとから表示することによってガクガク表示したり、swfのキャッシュをクリアにするなど、個人的に問題と思ったところを補う形で紹介したいと思います。

まずはさっそくソースコードのコピペ場所を!

//swfobject.jsを呼び出す
<script type="text/javascript" src="swfobject.js"></script>

//表示させるswfコンテンツの設定
<script type="text/javascript"><!--
var flashvars = {hensu: value};
var params = {allowscriptaccess: "always"};
var attributes = {id: "myFlashContent",name: "myFlashContent"};
swfobject.embedSWF("content.swf?u=20091210", "flashContent", "400", "200", "9.0.0", "expressInstall.swf", flashvars, params,attributes);
//--></script>

//FirefoxでFlashコンテンツに触ったときに出る、
//点線(フォーカスのアウトライン)を消す。
<style type="text/css"><!--
object {outline: none;}
--></style>

//実際に表示させる場所に書くHTMLと代替コンテンツ
<div style="height:200">
	<div id="flashContent">
	<h1>代替コンテンツ</h1>
	</div>
</div>

swfobject.jsを呼び出す記述

swfobject.jsはgoogle codeからダウンロードできます。
配布元:swfobject – Project Hosting on Google Code
http://code.google.com/p/swfobject/

ページ右側に「Featured downloads」というところから、swfobjectのzipファイルをダウンロードします。zipを解凍すると「swfobject.js」がありますので、それを任意の場所にアップしてソースコード2行目の記述を、必要であればパスを換えてHTMLに書きます。

//swfobject.jsを呼び出す
<script type="text/javascript" src="swfobject.js"></script>

flashvarsの使い方

swfobject.embedSWFが実際にFlashを表示させる関数です。その関数の引数にいろいろパラメータを渡すことによっていろんなことができます。flashvarsは変数の値をswfに送るための記述です。もちろん、変数を渡す必要がなければ省略できます。

var flashvars = {hensu1: value1, hensu1: "変数2"};

この「flashvars」のなかに入れる値は、変数をActionScriptへ渡すために記述です。phpやJavaScriptなどのプログラムからFlashへ何か値を渡したいときに、

var value1 = "値だよ";
var flashvars = {hensu1: value1, hensu2: "変数2"};

このように書けば「hensu1」というグローバル変数のなかに「”値だよ”」という文字列StringがFlashにわたることになります。ActionScript内の記述では、この「hensu1」と「hensu2」に対して「var hensu1 = new Sting();」や「var hensu1 = “”;」などを書く必要はありません。というのも、変数「hensu1」に格納された値「”値だよ”」がswfにわたってからFlashが再生されるので、せっかく渡った値がリセットされてしまうことになります。Flash内で動作確認する際は「flashvars」が渡す値を仮でActionScript内の変数として書いてデバッグをし、実際にHTMLをブラウザでFlashの動作確認する際にはコメントアウトをしておきましょう。

paramsの設定方法

objectタグの中に設定するparamsが必要であれば追加して書くことが可能ですが省略もできます。FlashPlayerを投下させる意味のある「wmode」の設定が、たとえばJavaScriptで作られたドロップダウン式のメニューとFlashがかぶっている場合に、この「wmode」が良く使われると思います。しかし、wmodeをtransparentにすると日本語入力などのコンテンツに使用すると、文字が入力できないというバグがあるみたいなので使う時には注意してください。
参考サイト:wmode を transparent に設定した際の注意点

http://www.adobe.com/jp/support/kb/ts/228/ts_228635_ja-jp.html

▼pramsのソースコードサンプル

var params = {
	play: "true",
	loop: "false",
	menu: "false",
	quality: "best",
	wmode: "transparent",
	allowscriptaccess: "always"
};

attributesの使い方

objectタグにidとnameを設定する時にこのattributesを使います。いろいろ調べても情報がなく、どういった使い方をするのかよくわかりませんが、、、おそらくIE4やN3などの古いブラウザで表示するのに必要そうな雰囲気がします^-^;

var attributes = {id: "myFlashContent",name: "myFlashContent"};

swfobjectができること

1.Internet Explorer(IE)においてのActiveX コントロールのアクティブ化
 いわゆる、IEでみたときにFlashを一回クリックしないと動作しないし触れないのを回避できます。
 ActiveX コントロールのアクティブ化(Microsoft)
 http://msdn.microsoft.com/ja-jp/library/ms537508(VS.85).aspx
 アクティブコンテンツのFAQ(Adobe)

2.FlashPlayer未インストールのユーザーに対しての代替コンテンツの表示

3.再生に必要なFlashPlayerのバージョンが満たされてなかった時に、代替コンテンツを表示させるか、Express Installを用いて最新版のFlashPlayerをインストールしてもらうのを促す。
参考サイト:Express Install 適用ガイド(Adobe)
http://www.adobe.com/jp/devnet/flashplayer/articles/expressinstall.html

4.Flashコンテンツが重要なコンテンツの場合、h1タグを用いて見出しを設置できるSEO対策。

5.パラメータを変数としてswfに渡すことができる。

swfobjectの注意点

・違うドメインへページ遷移するとき
getURLするときは、paramsにallowscriptaccess: “always”を追加する必要がある。
・wmodeの注意点
文字を入力するコンテンツの場合、FlashPlayerの透過を設定するwmode: “transparent”にすると文字が入力できない。
・swfobject.embedSWFの引数に入れる順番は決まっています。
例えば、flashvarsは使わないがparamsを使いたい時には、flashvarsの場所をnullにする必要があります。
▼引数なしの場合のサンプル

var flashvars = null;
var params = {allowscriptaccess: "always"};
swfobject.embedSWF("content.swf?u=20091210", "flashContent", "400", "200", "9.0.0", "expressInstall.swf", flashvars, params);

▼同じようにexpressInstallを使わない場合

swfobject.embedSWF("content.swf?u=20091210", "flashContent", "400", "200", "9.0.0", "", flashvars, params);

おまけ設定

・outline:noneのCSSでFlashの回りに点線を消してしまう。
CSSでobjectのoutlineをnoneにしています。これはFirefoxでFlashを表示させた時、そのコンテンツに対してクリックすると周りに出る点線を消す設定です。キーボードのTabを押すと、ページ内でクリックできる箇所にフォーカスをあてているこの点線を、swfobjectが表示させるobjectタグに対して設定しています。

・Flashに指し換わるdivの上に高さを設定したdivを挟む。
フルFlashコンテンツであれば問題ありませんが、パーツで使用するFlashがswfobjectで展開される前の状態では、一瞬、上下にガクガク表示する現象があります。これはネットの環境やパソコンの性能に左右されるかもしれませんが、ここで予め高さを設定し、backgroundで色や背景画像を設定しておけば見た目に変なことが起きることがありません。

10-08-09

Flash Player 10.1はiPhone以外のスマートフォンでフルに動作可能に

091008_01

アメリカのAdobeMAXで、次期FlashCS5でiPhoneアプリとしてパブリッシュできる。というニュースは、Flashクリエイターのみなさんとしては朗報だったとおもいます。

それと同時に、Flash Player ver.10.1も発表されました。このFlash Player 10.1は、パソコンとiPhone以外のスマートフォンでフルに動作可能になるみたいです。つまり、将来的には他の携帯端末もFlash LiteではなくPCと携帯と分けたFlashコンテンツ制作が可能になるのではないでしょうか。日本の場合はキャリア間同士が統一させていく動きは全く聞かないので、まだまだ先かもしれませんけどね。^-^; あと、GPUの活用で高画質な映像を提供できるということは、確実にXHTML5を意識してのことだと思います。ブラウザもAIRも携帯端末も、コンテンツが動くのは全てFlash Player。カメラや家電にも連携するようなFlash Playerになる日もそう遠くなくなってきたと思います。

09-11-09

Flash Playerで動く配色ツール:kuler

090911_01

配色に困った時に使えるツールはたくさんあります。

このAdobeが提供しているFlash Playerで動くkulerはとてもよくできています。

よくできているがゆえに、しばらく無駄にさわり続けてしまいます^^;

でも、グリグリ触っているうちに「あ!これいいかも!!」って感じた瞬間の色は保存できるんで便利です。

アカウントもAdobeのアカウントでログインできます。