2011年12月25日

nsswf.dllの透過処理

むむ、Flash Player バージョン: 11.1.102.55 で透過処理されるようになってる。
仕様じゃなくてバグだったのか……な?

ただ、Tipsさんの所でファイルの読み込みが重くなることが指摘されています。
もしSwfOpenで読み込みにひっかかりを感じる場合、SwfBeginOpen/SwfEndOpenで先読みすると改善するかもしれません。
その他にSWFを無圧縮にすると、読み込み時にプロセッサの負担が減ります。(たぶん微々たる物だと思いますが)
posted by wintercrows at 12:38| Comment(0) | TrackBack(0) | nsswf

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互換か、独自にものになるかと思います。


※前のデザインはテキスト量が増えると読みにくい気がしたので変更しました。
posted by wintercrows at 18:14| Comment(0) | TrackBack(0) | nsswf

2011年10月26日

nsswf.dllの透過処理の不具合

最新のFlash Player 11で透過処理が動作しない現象を確認しました。少し調べた感じですが、この問題はこちらでは対処できないかもしれません。

外部から利用したときの動作について、Flash Playerの動作が少し変わったようです。

Flash Player側の動作が再変更されることを期待したいですが、おそらく望み薄でしょう。(元々外部からの利用についてはサポートしていないようなので)

このため、現状ではnsswf.dllは利用を勧められないプラグインになります。サイトの方にも注意書きを記載か、もしくは公開を中止することを考えています。

申し訳ないです。
posted by wintercrows at 01:30| Comment(0) | TrackBack(0) | nsswf

2010年08月26日

ベータ版

nsswf-1.2.0.1-beta.zip

内部のコードを大分変更したので、ベータでしばらく様子を見ることにしました。前のバージョンで重くなった所が直ってたらいいんですが(´・ω・`)。

ドキュメントがわかりにくいかもしれないので、今更ながらここで少し補足。setlayerで指定する更新頻度は出来るだけ小さな値(5とか)にしてください。そうしておいて、実際の画面の更新頻度はSwfSetIntervalの方で設定します。NScripter起動後にも負荷調整出来た方がいいのかなと思ってこうしています(´・ω・`)。

[追記 - 1.2.0.1]
nslua.dllがなくても動作するように修正。
このDLLは必須じゃなかったんですね。
ついでに関数を読み込むようにしてました(´・ω・`;)
posted by wintercrows at 14:48| Comment(4) | TrackBack(0) | nsswf

2010年07月24日

つぶやきへのレス

(ここをご覧になってるかわかりませんが)

・luaの初期化でsetlayer呼ぶとSwfOpenで落ちる

調べてみたらnslua側からNSExec()で初期化するとInitialize()が呼ばれていないようです。
終了時のFinalize()は呼ばれてるので対応を考えて見ます。

・起動が重い

動作を変更したので、少し読み込むときが重くなったかもしれません。

・下方互換性

一応、9.0.277.0と10.0.x以下のいくつかを試したのですが、
こちらでは確認できませんでした(´・ω・`)
何か見過ごしてるのかな。

posted by wintercrows at 11:16| Comment(2) | TrackBack(0) | nsswf

2010年07月11日

最新のFlashPlayerでのエラー

最新のFlashPlayerでnsswf.dllが動作しないのを確認しました。
可能であれば修正します。
あと出来ればAS3.0との連携についても。
posted by wintercrows at 21:54| Comment(0) | TrackBack(0) | nsswf

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という書式の方がいいのかなと。
まあ今から変えるのもなんだし、とりあえずこのままでいいか。
posted by wintercrows at 21:25| Comment(0) | TrackBack(0) | nsswf

2009年02月03日

システムメニューの不具合修正

CoGetInterfaceAndReleaseStreamで取得したFlashのインターフェイスを使うのを限定的にした。このインターフェイスからFlashの関数なりを呼び出している間にシステムメニュー関係の処理が失敗しているようなので。
自分で同期処理っていうか、ただスレッドにメッセージ送って処理してくるの待つだけ(´・ω・`)
posted by wintercrows at 16:54| Comment(0) | TrackBack(0) | nsswf

2009年01月28日

nsswf.dllの不具合

systemmenu.PNG
画像のようなウインドウ(NScripter)のシステムメニューが効かなくなる。選択してもビープ音のみ。ウインドウ上の[X]ボタンやら[_]ボタンは問題なく動作しているけど、タスクバーやウインドウアイコンから呼び出したシステムメニューのみが動作しなくなる。

Flash用にスレッドを別にしたのが原因のよう。0.5.0.0以前では発生していない。新しいスレッドでホストウインドウやらFlashやらを作って、メインスレッドではCoGetInterfaceAndReleaseStreamで取得したインターフェイスで処理している。不味いんかなぁ(´・ω・`)

一応、0.5.0.0はここに置いてあります。

これはこれで別のバグがありますが(´・ω・`)
posted by wintercrows at 20:37| Comment(0) | TrackBack(0) | nsswf

2008年12月14日

nsswf.dll - 0.3.0.0

Flash内の変数(?)を扱うコマンド追加。
とりあえず、SwfSetVariableで新しい変数(?)と値をセットして、
SwfGetVariableで読み込むことは出来てるようだけど。
既存の変数を操作するには名前がわからない(´・ω・`)
テストに使ってるswfは拾い物だから……。
posted by wintercrows at 14:41| Comment(0) | TrackBack(0) | nsswf

2008年12月11日

ドキュメント

nsswf.dllにHTML形式のドキュメントをつけて見た。
使い方は見た感じでわかると思うのでいらないとは思うけど、
一度やってみたかった。
こういうの作るのって面倒だけど楽しい。
自分の頭の中も整理できるし。

あとはFlashとNScripter側とで連携出来るようにしたいけど、
その前にFlashの製作環境がないと動作確認できないか(´・ω・`)
posted by wintercrows at 22:44| Comment(0) | TrackBack(0) | nsswf

2008年12月07日

nsswf.dllの再生負荷

ぐは、この異様に重いのは凡ミスの予感……。
それにしても寒い(´・ω・`)

[追記]
やっぱり凡ミスだったorz
即修正。
posted by wintercrows at 07:40| Comment(0) | TrackBack(0) | nsswf

2008年12月06日

Flash再生プラグイン

まだ公開できるようなものじゃない気がしますが、
コンテンツ増やしたいのでとりあえず公開しました。
ほむぺがさびしすぎる(´・ω・`)
nptheoraも更新しないと……。


nsswf.dllについて

nsswf.dll側では一時ファイルを作らずに
メモリに展開したswfファイルをFlashPlayerに渡しています。
メモリに展開されるのは無圧縮swf+数百バイト程度です。
FlashPlayerに渡した後はクリアしています。
その後FlashPlayer側でどう処理しているかは知りません(´・ω・`)
posted by wintercrows at 13:44| Comment(0) | TrackBack(0) | nsswf