既にtextfieldがありますが、文字の描画を自前で出来ないか試してみました。
自前といっても描画自体はdeffont.dllに任せ、文字の配置や色などをコントロールします。
edit.zip
入力可能なのは1行のテキストのみです。
変換候補一覧の表示も行っていません。
IME関連の操作を行うDLLと入力されたテキストを保持して描画を行うluaファイルで構成されています。
DLLからIME関連のメッセージをluaに渡して、lua側でそれを処理します。
最低限の機能しかなく、まともな使用に耐えうるものではありません。
luaで行っている描画処理でスプライトIDやテクスチャIDがハードコーディングされていたり
入力環境もまったく考慮していないので、日本語環境のWindowsでないと動作しないでしょう。
その日本語環境でもきちんと動作するか怪しいですが。
他にもMicrosoftのIMEでしか試していませんので、ATOKやGoogleIME(?)だとどうなるか。
本格的に色んな環境に対応させるのは大変そうなので、このまま放置の予定(´・ω・`)
というか何ヶ月ぶりの更新だろ…
2012年06月03日
2011年12月25日
nsswf.dllの透過処理
むむ、Flash Player バージョン: 11.1.102.55 で透過処理されるようになってる。
仕様じゃなくてバグだったのか……な?
ただ、Tipsさんの所でファイルの読み込みが重くなることが指摘されています。
もしSwfOpenで読み込みにひっかかりを感じる場合、SwfBeginOpen/SwfEndOpenで先読みすると改善するかもしれません。
その他にSWFを無圧縮にすると、読み込み時にプロセッサの負担が減ります。(たぶん微々たる物だと思いますが)
仕様じゃなくてバグだったのか……な?
ただ、Tipsさんの所でファイルの読み込みが重くなることが指摘されています。
もしSwfOpenで読み込みにひっかかりを感じる場合、SwfBeginOpen/SwfEndOpenで先読みすると改善するかもしれません。
その他にSWFを無圧縮にすると、読み込み時にプロセッサの負担が減ります。(たぶん微々たる物だと思いますが)
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との連携についても。
2010年05月21日
Win7とビデオ再生
公式のサポートBBSで報告されてたWin7だとNScripterのmovie命令で綺麗に拡大縮小されない問題について。Win7からGDI/GDI+にハードウェアアクセラレーションがなくなった(?)のが原因なのかな。
GraphEditでレンダラをいくつか試したらEnhanced Video Rendererとオーバーレイでだけ綺麗に拡大縮小された。Win7のメディアプレイヤーはこのEVRを使用しているよう。
まあ拡大縮小しなければ問題ないようなので、そうするのが一番かな。
GraphEditでレンダラをいくつか試したらEnhanced Video Rendererとオーバーレイでだけ綺麗に拡大縮小された。Win7のメディアプレイヤーはこのEVRを使用しているよう。
まあ拡大縮小しなければ問題ないようなので、そうするのが一番かな。
WebM
VP8(ビデオコーデック)がロイヤリティフリーのオープンソースで公開された。Theoraなどと同じBSDスタイルのライセンスらしい。
YouTubeの動画やFlashも対応するようだから、Web上ではかなりの速度で普及しそう。ゲームなどにも使用されるんだろうか。
しかし普及すればするほど特許の問題が浮上してきそうだ。マイクロソフトのVC-1の件もあるし、本当にH.264など既存の特許に触れてないのだろうか。ただVP8がオープンになるかもしれないと噂が出たあたりから言われてたことだから、Googleには見通しがあると思うけど。
まあ自分にはその辺の技術的なことはサパーリだ(´・ω・`)
YouTubeの動画やFlashも対応するようだから、Web上ではかなりの速度で普及しそう。ゲームなどにも使用されるんだろうか。
しかし普及すればするほど特許の問題が浮上してきそうだ。マイクロソフトのVC-1の件もあるし、本当にH.264など既存の特許に触れてないのだろうか。ただVP8がオープンになるかもしれないと噂が出たあたりから言われてたことだから、Googleには見通しがあると思うけど。
まあ自分にはその辺の技術的なことはサパーリだ(´・ω・`)