2010
9/3

IEでブラウザの「戻る」ボタンでページに戻ってきた際に、stageWidthとstageHeightの値が取得できない

ああ・・・。IEよ、またお前なのね。コトのきっかけになったのはクライアントからの

swfを埋め込んだhtmlページについて、サーバにアップしてIEでアクセスする分には問題ないが、ローカル環境でIEで開くとオブジェクトの位置が大幅にずれる。

・・・というご指摘。調べてみると確かにそうなっていることを確認。さらに調べてみると、サーバにアップしたものについても

  1. IEでswfの埋めこんであるhtmlページ(A)を表示。
  2. そのまま別のURLに遷移。
  3. ブラウザの「戻る」ボタンで(A)に戻る。
  4. するとswf内のオブジェクトの位置が大幅にずれる。

・・・という現象を発見(汗)。「ななな、なんじゃこりゃあああああ!」と思ってさらにさらに調べてみると、下記の記事を発見。

・・・みなさん、苦労されてきたんですね。とりあえず、上記のみなさんの記事と今回の実際のファイルから、自分なりに発生条件や不具合の内容から解決方法までまとめてみました。

(続きを読む…)


Filed under: ActionScript3,SWFObject,Troublesコメントは受け付けていません。— tonpoo @ 7:35 PM

2010
7/2

Error calling method on NPObject

ss

製作中のとあるフルFlashサイト。ブラウザで普通に確認してる分には問題なく動作していたため全く気がつかなかったが、Firefoxのエラーコンソールを開いてみると「Error calling method on NPObject」というJavaScriptエラーが頻発!「なんじゃこりゃ」ということで早速調べてみたところ、原因がわかりました。

まず、今回のサイトは以下のような条件が揃っていました。

  • SWFファイルのドメインと、そのSWFファイルを埋め込んで表示するHTMLファイルのドメインが異なっている(SWFは http://www.hogehoge.home/movie.swf にあり、HTMLファイルは http://user.hogehoge.home/index.html にある、というような感じ)
  • マウスホイール対応のためにSWFWheelを使用
  • SWFファイルの埋め込みにSWFObjectを使用

そしてSWFWheelのサイトを見ていたところ、以下のような注意書きが:

その他

外部ドメインからの読み込み

SWFWheelを使ったswfファイルを、外部ドメインから読み込む場合、HTML側とActionScript側の両方でExternalInterfaceの動作を明示的に許可する必要があります。

  1. HTML側にて、paramタグ及びembedタグでallowScriptAccessの値にalwaysを指定する。
  2. ActionScript側にて、Security.allowDomain等で許可するドメインを指定する。

ビンゴですね。1.の方は対応済みだったんですが、2.の方が未対応でした。ところで今回のサイト、サブドメインの数が一定でなく、運用後に随時追加される可能性があります。ので、ワイルドカードを使って以下のようなコードを追加。

Security.allowDomain("*.hogehoge.home");

結果は・・・?ダメでした。まだエラーが出ます。うーん、もしかしてワイルドカードでサブドメインを指定するのは無理なのか?ということで、今度は以下のコードで実験。

Security.allowDomain("*");

成功!エラーがでなくなりました。全ドメインを対象にしてしまうのは危険といえば危険ですが、現時点ではこれが最善の策でしょうか。


Filed under: ActionScript3,SWFObject,SWFWheel,TroublesComments (0)— tonpoo @ 11:37 AM

2009
12/22

FlashからExternalInterfaceクラスを使ってLightboxを呼び出す

「Flash(swf)からLightboxを呼び出す」というニーズがこれまでに何回かあり、またついさっきもあって、その都度ちょっと面倒だったりしたのでメモ。なお、ウチの会社ではswfファイルの埋め込みには通常swfobject2を使ってるので、以下は「Lightbox2.04 + swfobject2 + ActionScript(ExternalInterfaceクラス)」という組み合わせが前提となっています。

Lightboxを入手

まず使用するLightboxのバージョンは2.04。Lokesh Dhakar氏によるLightbox 2の公式サイトで入手。

ベースHTMLの作成

次にベースとなるHTMLを作成。今回はとりあえずSWFObject 2 HTML and JavaScript ジェネレーターを使ってサクっと作りました。ポイントとしては、「SWFの定義」のオプションを一部変更すること。
ss1

(続きを読む…)


Filed under: ActionScript2,ActionScript3,SWFObject,TipsComments (1)— tonpoo @ 10:55 PM

2009
8/18

SWFObject 2 HTML and JavaScript ジェネレーター v1.2

swfobjectのプロジェクトサイトで提供されている「SWFObject 2 HTML and JavaScript generator v1.2」を、日本語環境で(というかTonpoo個人にとって)使いやすいよう一部カスタマイズした上で日本語化してみました!

【SWFObject 2 HTML and JavaScript ジェネレーター v1.2】

(特に開発者サイドの許可をとってないんですが、MITライセンスで、コピーライト表記をソースコード中にそのまま残しているので、これで大丈夫なんでしょうか・・・。ちょっと不安。)

ちなみに、オリジナル版からのカスタマイズ点は下記の通り。

  • 文字コードの指定にShift_JISを追加。
  • 文字コードのデフォルト値をutf-8に変更。
  • パブリッシュ方法のデフォルト値を「動的パブリッシュ」に設定。
  • HTMLテンプレートのデフォルト値を「XHTML 1.0 Transitional」に設定。
  • 出力されるHTMLコードの言語系の属性の値をenからjaに変更。
  • 出力されるHTMLコードのmeta要素などの出現順序を変更。
  • 出力されるHTMLコードの中に、ドキュメント内でJavaScriptを使用していることを示すためのmeta要素を追加。
  • 出力されるHTMLコードの中に記述される、FlashPlayerのダウンロードリンクのリンク先を、Adobeの日本語サイトに変更。

追記:当サイトでの公開について念のため確認し、了承をいただきました。に加えて、公式サイト内のWikiページからリンクを張って頂きました!


Filed under: SWFObjectComments (0)— tonpoo @ 8:08 PM