むむ、Flash Player バージョン: 11.1.102.55 で透過処理されるようになってる。
仕様じゃなくてバグだったのか……な?
ただ、Tipsさんの所でファイルの読み込みが重くなることが指摘されています。
もしSwfOpenで読み込みにひっかかりを感じる場合、SwfBeginOpen/SwfEndOpenで先読みすると改善するかもしれません。
その他にSWFを無圧縮にすると、読み込み時にプロセッサの負担が減ります。(たぶん微々たる物だと思いますが)
2011年12月25日
2011年10月29日
(続)nsswf.dllの透過処理の不具合
◆ 不具合の症状
・nsswf + Flash Player 11では透過処理ができない。
・XP,Vista,7のすべてで発生する。
・IE上では問題なく透過できている。
・Flash Player 11.2(Beta)でも改善しない。
・nsswf上でも透過できる環境がある。
グラフィック処理がオンボードのものは透過できなかったが、ビデオカードのものでは動作したとご報告をいただきました。ただ、こちらの環境ではビデオカードでも透過できませんでしたので、条件がまだはっきりしていません。
こちらで検証した環境は以下になります。
Win7 x64 + GeForce 460GTX
WinVista x86 + Intel GMA 4500MHD
WinXP x86 + GeForce 9800GTX
XPMode + VMware Player
◆ 解決策
現状ではFlash Player 10.3以前を利用することですが、セキュリティ上の観点からもお勧め出来ません。10.3.x以前を利用される場合は、そのバージョンにセキュリティ上の問題が見つかっていないか、よくご確認ください。
◆ nsswfの利用について
お勧めはできません。
新たに利用する場合は十分な検証の上、この問題についてよく把握した上でお使いください。
◆ nsswfの開発状況
nsswfの問題か含め、nsswf側で解決できないか調査中。
今のところ見通しは暗いです。
◆ 補足:Flash Playerの更新時における注意
nsswfが使用しているのはIE用のFlash Playerです。
基本的にIE用を更新するにはIEでAdobeのダウンロードページを開いて更新を行います。
Flash PlayerにはIE用のActiveXコントロールとNetscape互換のプラグインがあります。それぞれはインストーラを含め別々に動作していて、IE用が10.3、Netscape互換のプラグインが11.0の環境もありえます。
Flash Playerが組み込まれているGoogle Chromeについては利用していないのでわかりませんが、Netscape互換か、独自にものになるかと思います。
※前のデザインはテキスト量が増えると読みにくい気がしたので変更しました。
2011年10月26日
nsswf.dllの透過処理の不具合
最新のFlash Player 11で透過処理が動作しない現象を確認しました。少し調べた感じですが、この問題はこちらでは対処できないかもしれません。
外部から利用したときの動作について、Flash Playerの動作が少し変わったようです。
Flash Player側の動作が再変更されることを期待したいですが、おそらく望み薄でしょう。(元々外部からの利用についてはサポートしていないようなので)
このため、現状ではnsswf.dllは利用を勧められないプラグインになります。サイトの方にも注意書きを記載か、もしくは公開を中止することを考えています。
申し訳ないです。
外部から利用したときの動作について、Flash Playerの動作が少し変わったようです。
Flash Player側の動作が再変更されることを期待したいですが、おそらく望み薄でしょう。(元々外部からの利用についてはサポートしていないようなので)
このため、現状ではnsswf.dllは利用を勧められないプラグインになります。サイトの方にも注意書きを記載か、もしくは公開を中止することを考えています。
申し訳ないです。
2010年08月26日
ベータ版
nsswf-1.2.0.1-beta.zip
内部のコードを大分変更したので、ベータでしばらく様子を見ることにしました。前のバージョンで重くなった所が直ってたらいいんですが(´・ω・`)。
ドキュメントがわかりにくいかもしれないので、今更ながらここで少し補足。setlayerで指定する更新頻度は出来るだけ小さな値(5とか)にしてください。そうしておいて、実際の画面の更新頻度はSwfSetIntervalの方で設定します。NScripter起動後にも負荷調整出来た方がいいのかなと思ってこうしています(´・ω・`)。
[追記 - 1.2.0.1]
nslua.dllがなくても動作するように修正。
このDLLは必須じゃなかったんですね。
ついでに関数を読み込むようにしてました(´・ω・`;)
内部のコードを大分変更したので、ベータでしばらく様子を見ることにしました。前のバージョンで重くなった所が直ってたらいいんですが(´・ω・`)。
ドキュメントがわかりにくいかもしれないので、今更ながらここで少し補足。setlayerで指定する更新頻度は出来るだけ小さな値(5とか)にしてください。そうしておいて、実際の画面の更新頻度はSwfSetIntervalの方で設定します。NScripter起動後にも負荷調整出来た方がいいのかなと思ってこうしています(´・ω・`)。
[追記 - 1.2.0.1]
nslua.dllがなくても動作するように修正。
このDLLは必須じゃなかったんですね。
ついでに関数を読み込むようにしてました(´・ω・`;)
2010年07月24日
つぶやきへのレス
(ここをご覧になってるかわかりませんが)
・luaの初期化でsetlayer呼ぶとSwfOpenで落ちる
調べてみたらnslua側からNSExec()で初期化するとInitialize()が呼ばれていないようです。
終了時のFinalize()は呼ばれてるので対応を考えて見ます。
・起動が重い
動作を変更したので、少し読み込むときが重くなったかもしれません。
・下方互換性
一応、9.0.277.0と10.0.x以下のいくつかを試したのですが、
こちらでは確認できませんでした(´・ω・`)
何か見過ごしてるのかな。
・luaの初期化でsetlayer呼ぶとSwfOpenで落ちる
調べてみたらnslua側からNSExec()で初期化するとInitialize()が呼ばれていないようです。
終了時のFinalize()は呼ばれてるので対応を考えて見ます。
・起動が重い
動作を変更したので、少し読み込むときが重くなったかもしれません。
・下方互換性
一応、9.0.277.0と10.0.x以下のいくつかを試したのですが、
こちらでは確認できませんでした(´・ω・`)
何か見過ごしてるのかな。
2010年07月11日
最新のFlashPlayerでのエラー
最新のFlashPlayerでnsswf.dllが動作しないのを確認しました。
可能であれば修正します。
あと出来ればAS3.0との連携についても。
可能であれば修正します。
あと出来ればAS3.0との連携についても。
2009年03月28日
nsswf.dllのサンプルスクリプト
サンプルスクリプトを組んでみました。
00.txt
01.txt
02.txt
動作確認もほとんどしてなくて上手く動くかあまり自信がないですが、
00.txtがdefine節、01.txtが実装部分、02.txtからstartという感じです。
あとは同じフォルダにnscr.exe、nsswf.dll、demo.swfを用意してください。
サブルーチン(defsubやら)を使用したのは初めてかもしれない。
実は今まであまりNScripter本体にふれてない(´・ω・`)
今回のサンプル作るだけでも分からないことが一杯だった。
NScripterを利用して作品を作ったことはあるのですが、
(もともとnptheoraもそれで使用するつもりだった)
そのときは時間もなくて場当たり的な突貫工事。
逆にそれで十分動くくらいNScripterは使いやすいってことですが。
で、やってて思ったのはSwfOpen(demo.swf)よりSwfOpen/demo.swfという書式の方がいいのかなと。
まあ今から変えるのもなんだし、とりあえずこのままでいいか。
00.txt
01.txt
02.txt
動作確認もほとんどしてなくて上手く動くかあまり自信がないですが、
00.txtがdefine節、01.txtが実装部分、02.txtからstartという感じです。
あとは同じフォルダにnscr.exe、nsswf.dll、demo.swfを用意してください。
サブルーチン(defsubやら)を使用したのは初めてかもしれない。
実は今まであまりNScripter本体にふれてない(´・ω・`)
今回のサンプル作るだけでも分からないことが一杯だった。
NScripterを利用して作品を作ったことはあるのですが、
(もともとnptheoraもそれで使用するつもりだった)
そのときは時間もなくて場当たり的な突貫工事。
逆にそれで十分動くくらいNScripterは使いやすいってことですが。
で、やってて思ったのはSwfOpen(demo.swf)よりSwfOpen/demo.swfという書式の方がいいのかなと。
まあ今から変えるのもなんだし、とりあえずこのままでいいか。
2009年02月03日
システムメニューの不具合修正
CoGetInterfaceAndReleaseStreamで取得したFlashのインターフェイスを使うのを限定的にした。このインターフェイスからFlashの関数なりを呼び出している間にシステムメニュー関係の処理が失敗しているようなので。
自分で同期処理っていうか、ただスレッドにメッセージ送って処理してくるの待つだけ(´・ω・`)
自分で同期処理っていうか、ただスレッドにメッセージ送って処理してくるの待つだけ(´・ω・`)
2009年01月28日
nsswf.dllの不具合
画像のようなウインドウ(NScripter)のシステムメニューが効かなくなる。選択してもビープ音のみ。ウインドウ上の[X]ボタンやら[_]ボタンは問題なく動作しているけど、タスクバーやウインドウアイコンから呼び出したシステムメニューのみが動作しなくなる。
Flash用にスレッドを別にしたのが原因のよう。0.5.0.0以前では発生していない。新しいスレッドでホストウインドウやらFlashやらを作って、メインスレッドではCoGetInterfaceAndReleaseStreamで取得したインターフェイスで処理している。不味いんかなぁ(´・ω・`)
一応、0.5.0.0はここに置いてあります。
これはこれで別のバグがありますが(´・ω・`)
2008年12月14日
nsswf.dll - 0.3.0.0
Flash内の変数(?)を扱うコマンド追加。
とりあえず、SwfSetVariableで新しい変数(?)と値をセットして、
SwfGetVariableで読み込むことは出来てるようだけど。
既存の変数を操作するには名前がわからない(´・ω・`)
テストに使ってるswfは拾い物だから……。
とりあえず、SwfSetVariableで新しい変数(?)と値をセットして、
SwfGetVariableで読み込むことは出来てるようだけど。
既存の変数を操作するには名前がわからない(´・ω・`)
テストに使ってるswfは拾い物だから……。
2008年12月11日
ドキュメント
nsswf.dllにHTML形式のドキュメントをつけて見た。
使い方は見た感じでわかると思うのでいらないとは思うけど、
一度やってみたかった。
こういうの作るのって面倒だけど楽しい。
自分の頭の中も整理できるし。
あとはFlashとNScripter側とで連携出来るようにしたいけど、
その前にFlashの製作環境がないと動作確認できないか(´・ω・`)
使い方は見た感じでわかると思うのでいらないとは思うけど、
一度やってみたかった。
こういうの作るのって面倒だけど楽しい。
自分の頭の中も整理できるし。
あとはFlashとNScripter側とで連携出来るようにしたいけど、
その前にFlashの製作環境がないと動作確認できないか(´・ω・`)
2008年12月07日
nsswf.dllの再生負荷
ぐは、この異様に重いのは凡ミスの予感……。
それにしても寒い(´・ω・`)
[追記]
やっぱり凡ミスだったorz
即修正。
それにしても寒い(´・ω・`)
[追記]
やっぱり凡ミスだったorz
即修正。
2008年12月06日
Flash再生プラグイン
まだ公開できるようなものじゃない気がしますが、
コンテンツ増やしたいのでとりあえず公開しました。
ほむぺがさびしすぎる(´・ω・`)
nptheoraも更新しないと……。
nsswf.dllについて
nsswf.dll側では一時ファイルを作らずに
メモリに展開したswfファイルをFlashPlayerに渡しています。
メモリに展開されるのは無圧縮swf+数百バイト程度です。
FlashPlayerに渡した後はクリアしています。
その後FlashPlayer側でどう処理しているかは知りません(´・ω・`)
コンテンツ増やしたいのでとりあえず公開しました。
ほむぺがさびしすぎる(´・ω・`)
nptheoraも更新しないと……。
nsswf.dllについて
nsswf.dll側では一時ファイルを作らずに
メモリに展開したswfファイルをFlashPlayerに渡しています。
メモリに展開されるのは無圧縮swf+数百バイト程度です。
FlashPlayerに渡した後はクリアしています。
その後FlashPlayer側でどう処理しているかは知りません(´・ω・`)