08-26-10

ActionScriptライブラリTweenerでBlurの使い方

ActionScriptのトゥイーン制御ライブラリTweenerの使い方の補足です。

ぼかし、ブラーをTweenさせようと思ってもエラーが出る。

## [Tweener] Error: The property '_Blur_blurX' doesn't seem to be a normal object property of [object MovieClip] or a registered special property.
## [Tweener] Error: The property '_Blur_blurY' doesn't seem to be a normal object property of [object MovieClip] or a registered special property.

Tweenerライブラリを読み込む「import caurina.transitions.Tweener;」この記述の下に、ぼかしフィルターを適応させるライブラリをimportさせる記述書いて、初期化をする関数を実行させる必要があります。

//▼ぼかしフィルターのimport
import caurina.transitions.properties.FilterShortcuts;
//▼ぼかしフィルターの初期化
FilterShortcuts.init();
//▼ぼかしTween
Tweener.addTween([instance],{alpha:1,
					transition:'easeOutQuint',
					time:5,_Blur_blurX:20,
					_Blur_blurY:20})

サンプルサイトなどでコピペしてエラーが出た方は、これの記述があるか見てみてくださいー。

08-04-10

ActionScript2とActionScript1で正規表現が使えるライブラリ

だいぶごぶさたしてました。。。最近はJavaScriptやCSSを触ることが増えてきましたけど、久しぶりにFlashについて書こうとおもいます。ActionScript3になってから正規表現がサポートされましたが、ActionScript2、1では使うことができません。それを使えるようにするライブラリを見つけたので簡単に紹介します。

ライブラリ配布サイト:http://www.jurjans.lv/flash/RegExp.html
ここのページで、まず最初にはまってしまいましたのが、AS1とAS2で使用するライブラリの種類が違いました。
AS1用:RegExp.zip
AS2用:RegExp_JLott.zip
このzipファイル名を探してダウンロードしてください。解凍したzipファイルの中にあるasファイルをドキュメントルートに設置して、スクリプトで読み込めるようにしておいてください。

RegExサンプルコード AS2

import RegExp;
var regexp = new RegExp("([^?]*)");//←括弧のなかに正規表現パターンを入れる
result1 = regexp.exec("ここにテキストを入れる");//パターンにマッチした部分を摘出
result2 = "検索する文字列".replace(regexp,"置き換えたいテキスト");//パターンにマッチした置き換え

いろんな参考ページをみたときに、new RegExpの第2引数になんらかのStringを入れていましたが、いまいち用途もわからず、なくても正しく動きましたので今回は省きました。

RegExサンプルコード AS1

#include "RegExp.as"
var regexp = new RegExp("([^?]*)");//←括弧のなかに正規表現パターンを入れる
result1 = regexp.exec("ここにテキストを入れる");//パターンにマッチした部分を摘出
result2 = "検索する文字列".replace(regexp,"置き換えたいテキスト");//パターンにマッチした置き換え

正規表現というのはとても便利でいいんですが、僕はいまいち使いこなせていないです。。^^;

それではまたー

04-13-10

Flash制作者とWebディレクターがよくするやりとりFAQ

Q.納品されたswfファイルが開けません

A.ローカル(StanndAlone)でswfを再生できるFlash Playerは無料配布されてませんので、Flash Playerがインストールされたブラウザにドラッグアンドドロップして確認してください。

Q.ブラウザにswfファイルをドラッグアンドドロップしましたが、サイズが違います。

A.htmlに乗せていないswfファイルは、縦横サイズが指定されていないので、ブラウザウインドウの幅の分だけ拡大します。原寸サイズで確認する場合はhtmlに貼り付けて、htmlから確認してください。

Q.Flash Playerをインストールしているのに、Flashが表示されません!

A.(JavaScriptでswfを表示させている場合)JavaScritpがOFFではありませんでしょうか?swfを表示するために、swfobject.jsというJavaScritpを使用していますので、確認する際にはJavaScritpをONにしてください。

Q.修正したswfファイルが、更新されてないみたいなんですが。

A.swf配信後、更新前のキャッシュファイルが残っている可能性があります。ブラウザのキャッシュを消してから確認してみてください。

Q.外部XMLを更新、配信したんですが反映されません。

A.swfの修正更新ではなく、外部XMLを用いている場合、Flash側でキャッシュ対策がされてない場合があります。Flash制作者へお問合せください。

Q.外部から読み込んでいる画像が表示してません。

A.読み込んでいる画像のURLに直接アクセスしてみてください。そこに画像はありますか?

Q.Flashが出てなくて真っ白です。

A.真っ白いという状況は複数の原因が考えられますので、まず、そのFlashが表示されるはずの真っ白い場所を右クリックしてみてください。Flashのコンテキストメニューが表示されなかったらFlash Playerがインストールされてないか、HTMLの記述に間違いがあります。まずはそこを確認してから他の原因を調べます。

Q.IEではFlashが見れますが、FirefoxではFlashが表示されません(その逆の場合も)

A.見られてないブラウザにFlash Playerがインストールされていない可能性があります。IEとFierfoxとでは、各ブラウザごとにFlash Playerのインストールが必要ですので、見られないブラウザでAdobeのサイトからFlash Playerをインストールしてください。
http://get.adobe.com/jp/flashplayer/

Q.ページ内リンクからブラウザの戻るボタンで、Flash Playerが正しく再生されない

A.ブラウザによって「戻る」ボタンの仕様がちがい、全てに当てはまるとは限りませんが、Flashのタイムラインが進んでしまってる状態のまま「戻る」可能性があるので、1フレーム目にXMLや画像を読み込むActionScriptを記述していると、その1フレーム目のActionScriptが実行されていないまま、フレームが進んでいる状態に戻っている可能性が高いと思います。ページ内リンクからブラウザの戻るボタンで、Flash Playerが正しく再生されないを参考にしてみてください。

Q.FlashPlayerは潜在的に危険な操作を停止してしまいます。

HTTP環境外、例えばローカルとかからFlashを再生してリンクを確認する時、セキュリティが働いてページ遷移しない設定になっています。FlashPlayerは潜在的に危険な操作を停止しましたの回避策を参考にしてみてください。

04-08-10

Flashに値やパラメータを送る方法まとめ

HTMLにswfファイルを貼り付けてブラウザで見るときに、場合によってはHTMLに書いておいた値やパラメータをFlashの変数に渡してあげたいときがあると思います。Flash内を更新したいときや、ちょっとした汎用性のあるコンテンツを作るときに、Flashアプリケーションがインストールされていない環境でも、Flashの更新をしたりする時に便利です。色々ある方法の中で一番シンプルな方法、swfobjectを使って、ActionScriptにどう書けばいいのか紹介します。

swfobjectを使ってパラメータを設定する場合

swfobjectの使い方はswfobject v2.xの使い方を参考にしてみてください。
Flashコンテンツの背景色を色々変更したいという例えで紹介します。HTMLに書くswfobjectの書き方のイメージはこんな感じにします。

<script type="text/javascript" src="swfobject.js"></script>
<script type="text/javascript">
<!--
var flashvars = {bgColor: "FF0000"};//←背景色
var params = {allowscriptaccess: "always"};
swfobject.embedSWF("flash.swf", "flashContent", "100", "100", "8", "", flashvars, params,attributes);
//-->
</script>

flashvarsに変数名「bgColor」を書いて、値である16進数の「FF0000」を書いてみました。
ではActionScriptではどのように書くか

ActionScript2.0以下でflashvarsを取得する場合

ステージ全部に収まるシェイプを作って、今回の例では100×100の正方形のMovieClipを作ってステージに配置します。インスタンス名を「bg」としました。第1フレームに下記のActionScriptを書きます。

var color_obj = new Color(bg);// カラーオブジェクトを作成する
var colorStr = "0x"+_root.bgColor;//ここがswfobjectで設定した値が入ります
color_obj.setRGB(colorStr);

厳密なことはわかりませんが、flashvarsに格納した値はFlash上では_rootに宙に浮いてて、それを_root.[変数]にしてあげるとポコ!ってはいる。そんなイメージにしてますボクはw

ActionScript3.0でflashvarsを取得する場合

ActionScript3.0になってから、そんな宙に浮いていた値のイメージが、ちゃんとScriptを書いて値を取りに行くことを書かなければいけなくなりました。swfに渡そうとする変数の値は、LoaderInfoクラスで取得することができます。

import flash.display.LoaderInfo

var params:Object = loaderInfo.parameters;
var bgColorStr:String = params["bgColor"];

params[flashvars]になるので、複数の値を取得する時は名前を指定してあげれば取得することができます。

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アドレスを直接ブラウザを介して確認してもらいたいところですが、公開してはいけない繊細なコンテンツの場合だと、グローバルセキュリティ設定をしてもらうしかないですね。

03-23-10

Photoshopで編集した画像をFlashに読み込むと色が変化する

Flashに画像を配置した時に、さっきまで見ていた色と違うということがありました。全体的に赤みを帯びていたり、コントラストが強くなってたり。。。原因を調べてみると、画像を編集していたPhotoshopにあることに気がつきました。

プルダウンメニューの「ビュー」⇒「色の校正」にチェックが入ってて、上の「校正設定」が「Windows」以外に選択されてました。画像の見え方は、OSの色の解釈や、画面を見ているモニターの性能によって若干のブレがあるため、この項目で確認したりするためのもので、Flashにインポートするときはjpgかgifに書き出していたため、若干のブレがあり、色が変化しているように見えてたんだとおもいます。ショートカットがCtrl+Yですからね。1つ進むのリドゥと間違えて押してしまったっぽいです笑

Photoshopで編集していた画像をFlashに読み込んだときに、色が若干変化していた時は、ここのチェックをみて、普段作業をするぶんに関しては、チェックを外していたほうがいいかもしれません。

03-02-10

FlashLiteで商品検索コンテンツをリリースしました

楽天ウェブサービスの商品検索APIを使って、FlashLiteで商品検索コンテンツを作ってみました。気軽に商品検索をできるように、ブックマークして使ってくださいネ!
FlashLite1.1で作ったので、大半の携帯端末はカバーできていると思います。FlashLite1.1に合わせてAPIを使ったコンテンツってどうやって作ったと思いますか?ふふーん♪ 結構大変でした。。^-^;

このコンテンツの具体的な作り方は後日公開しますのでお待ちくださいー!

03-01-10

crossdomain.xmlをルート以外の設置からでも認識させる方法

ActionScriptでクロスドメインを認識させる方法は、

Security.loadPolicyFile("http://mysite.com/crossdomain.xml");

↑たぶん、このようにスクリプトを書きます。

Security.loadPolicyFile("http://mysite.com/sitemap/crossdomain.xml");

↑状況によってはドキュメントルート直下に「crossdomain.xml」置けないときもあると思います。

ボクは事情により後者で設定してFlashを再生させると、、

Error #2044: ハンドルされていない SecurityErrorEvent : text=Error #2048: セキュリティサンドボックス侵害
(※これはFlash Debug Playerからのアラートです)

出た!出たよ!!出てしまったよ!!!(TOT)
そこでFlashTracerでログを追跡してどんなエラーが出ているかを調べてみました。
ここでクロスドメインの構造をサクッと説明しますが、ドキュメントルート以外のクロスドメインの方法は更に下のほうに書きます。

crossdomain.xmlの設置と記述方法

Flashのクロスドメイン問題はいにしえからある問題です。そもそもクロスドメインというのは、swfファイルを貼り付けているHTMLをからみて、外部ファイルをロードするときに、そのファイルが置いてある場所は、HTMLファイルとは違うドメインという状態のことを指します。つまり、FlashPlayerは他人のドメインを攻撃してしまわないようにしているわけです。でも、世の中には写真共有サービスがあったりRSSコンテンツがあったりAPIなんかもあります。そういった場合は、どこからでも情報を取得してもいいですよ。といった感じに許可をすることができます。その許可をするための設定ファイルが、「crossdomain.xml」にあたります。

たとえば、自分のサイト「http://mysite.com」というサイトに表示させるFlashコンテンツが「http://hoge.com」というサイトにあるRSSをロードするとします。この場合、クロスしてますよね。hoge.comサイトは、mysite.comがRSSをロードしてもいいよ!と許可をする為に、「crossdomain.xml」をドキュメントルートの場所においてあげます。アドレスは

「http://hoge.com/crossdomain.xml

このようになります。実際に、この「crossdomain.xml」の中に何が書かれているか、

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-access-from domain="http://mysite.com"/>
</cross-domain-policy>

4行目にある記述で「http://mysite.com」と書いていると、「http://hoge.com」のRSSは「http://mysite.com」からのみロードができる。という事になります。

例えば、「http://mysite.com」を含むサブドメインにも許可をする場合は、「*.mysite.com」と書きます。

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-access-from domain="*.mysite.com"/>
</cross-domain-policy>

全てのサイトからのアクセスを許可をする場合は、「*」だけを書きます。この設定はセキュリティに詳しい方に一回相談したほうがいいかもしれません。

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-access-from domain="*"/>
</cross-domain-policy>

ココからFlashのはなし

実際にFlashで設定するSecurityメソッドは、「crossdomain.xml」がドキュメントルートに設置されてて、かつ、その内容の設定で問題なければ、わざわざクロスドメインポリシーファイルをロードする必要はありません。

Security.loadPolicyFile("http://hoge.com/crossdomain.xml");

↑このようにドキュメントルートにある「crossdomain.xml」をロードする記述はする必要がない。ということです。

んじゃ、どういったときにSecurityメソッドを使って「crossdomain.xml」をロードするのかというと、ドキュメントルートとは違う階層にある「crossdomain.xml」ファイルをロードするときに使います。例えば、ドキュメントルートであるhtdocsに、サブドメインごとにディレクトリを分けているとします。「content1」というディレクトリには外部からアクセスして欲しくないけど、「content2」というディレクトリにあるファイルは別のドメインからアクセス可能とするときに、「content2」にクロスドメインポリシーファイルを設置します。その時に、Flash側で書くスクリプトは、

Security.loadPolicyFile("http://hoge.com/content2/crossdomain.xml");

↑と書いて、ポリシーファイルをロードさせると、Flashは「content2」以下にあるコンテンツを表示させることができます。

FlashPlayer10からの仕様変更

前述のように、ドキュメントルートとは違う場所の「crossdomain.xml」を取得できてましたが、FlashPlayerのバージョン10からクロスドメインの設定ルールに少し変更が加えられ、かならずドキュメントルートの「crossdomain.xml」を最初に参照する使用に変更されました。もしドキュメントルートに「crossdomain.xml」がない場合、たとえ「http://hoge.com/content2/crossdomain.xml」ここの場所に設定ファイルを置いていても「Error #2044: ハンドルされていない SecurityErrorEvent : text=Error #2048: セキュリティサンドボックス侵害」といったエラーが出てしまいます。

エラー : http://hoge.com/content2/rss.xml のリソースに対する、http://mysite.com/content.swf の要求者からの要求は、ポリシーファイルのアクセス権がないため拒否されました。
※FlashDebugPlayerのログ例

ドキュメントルートにメタポリシーファイルを設定する

「crossdomain.xml」は、セキュリティポリシーを設定する記述のほかに、セキュリティポリシー設定ファイルを管理するメタポリシーとしても使うことができます。つまり、ポリシーファイルのポリシーファイルということですね。これをドキュメントルートに設定すれば、FlashPlayer10以上でも、ドキュメントルート以外の「crossdomain.xml」をロードすることができます。その中の記述に、site-controlタグを記述し、permitted-cross-domain-policiesをallにすると、全てのディレクトリーの「crossdomain.xml」をロードすることを許可することを意味します。

<!--ドキュメントルートに設定するメタポリシーファイル例-->
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<site-control permitted-cross-domain-policies="all" />
</cross-domain-policy>
<!--ルートから「content2」ディレクトリの「crossdomain.xml」の記述例-->
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-access-from domain="*.mysite.com"/>
<!--*.mysite.comからの通信を許可をする-->
</cross-domain-policy>

ActionScriptには下記とかく。

Security.loadPolicyFile("http://hoge.com/content2/crossdomain.xml");

クロスドメインでのエラーが出た場合の確認方法

一番単純なのは、外部画像やXMLなど、別ドメインから取得する場合、そのドメインのルートに「crossdomain.xml」があるかどうか確認してください。youtubeのクロスドメインは「http://www.youtube.com/crossdomain.xml」こうなります。ページが真っ白でしたらブラウザの「ソースを見る」で記述が確認できると思います。Flashコンテンツを制作しているなかで、もし、クロスドメイン設定ファイルがなければサーバーの管理者に問い合わせて、設置してもらうようにお願いする必要があります。詳しい「crossdomain.xml」の説明に関してはAdobeのデベロッパーセンターページに詳しく載ってます。
http://www.adobe.com/jp/devnet/articles/crossdomain_policy_file_spec.html

02-09-10

ActionScript3.0ではeval();が使えないので解決方法は

そろそろActionScript2.0から脱皮できそうな予感がしてきました!(オソw)そこで、ActionScript2.0でできたことで、ActionScript3.0でできないこと、その違いと方法を記録していきたいと思います。

AS3でeval();が使えない

evalは「テキストをインスタンス名のターゲットに変換してくれる」というのがボクのイメージです。
例えば、ステージ上に、mc0からmc9までのムービークリップがあるとします。これらに一気に命令する時は、
▼ActionScript1.x ~ 2.0の場合

for(var i:Number = 0; i<10; i++){
	eval("mc"+i).onRelease = function(){
		trace("ほげ");
	}
}

for文の中の変数「i」を利用して、「mc0」「mc1」「mc2」「mc3」…..「mc8」「mc9」まで一気にonReleaseのボタンが設定できました。
ActionScript3.0だとevalが使えないので、下記の方法を使います。
▼ActionScript3.0の場合

for(var i:int = 0; i<10; i++){
	this.["mc"+i].onRelease = function(){
		trace("ほげ");
	}
}

えーっと、実は、この記述の方法はActionScript1.x~2.0で、Flash Player5以上であれば使うことができます。

更にもっと深い階層になると、

for(var i:int = 0; i<10; i++){
	this.["mc"+i]["mc2"+i]["mc3"+i].onRelease = function(){
		trace("ほげ");
	}
}

と、ドットで連結させるところを、[ ] ←この括弧で連結することで、インスタンス名にアクセスすることができます。

for文でインスタンスのプロパティに対してアクセスしたい場合、getChildByNameを使ってインスタンス名を参照します。例えばX座標のとき、

for(var i:int = 0; i<10; i++){
	trace(this.getChildByName("mc"+i).x);
}

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で色や背景画像を設定しておけば見た目に変なことが起きることがありません。