14
14

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ElectronでSWFを扱おうとして失敗した話(コメント欄で解決、近々本記事も更新します)

Last updated at Posted at 2015-08-16

Electronの内部にSWFを埋め込み、JS←→SWFで命令を送り合いたかったけれど、あまりうまく行かなかったお話

検証バージョン

  • Electron v0.29.2
  • Mac OSX Yosemite バージョン10.10.4
  • Mac OSX、Chrome用のPepperFlashPlayer.plugin(Adobe Flash Player 18.0 r0)

できたこと

using-pepper-flash-plugin.md - GitHub」や「hokein/electron-sample-apps/pepper-flash-plugin - GitHub」 を参考にelectron-prebuiltでSWFを表示してみること。

うまく行かなかったこと

  • electron-packagerでパッケージ化した時に「Couldn't load plugin.」と表示されswfを表示できなかった。
  • JavaScript側からExternalInterface経由でFlashへ命令を送れなかった。
  • Flash側からExternalInterface経由でJSへ命令を送れなかった。

使用したファイル / コード

上記を試した時の挙動

JavaScript側からExternalInterface経由でFlashへ命令を送れなかった。

  • FlashのSecurity.sandboxType が "localWithNetwork" になっているため?"localTrusted"になれるとよさそうだけれど・・・。
    electron-debug0.png

  • 通常ならJSから呼び出せるはずのSWFで定義されているcallSwfFunc()関数がundefinedだった

alert("" + document.getElementById("ElectronSwfViewer").callSwfFunc )

electron-debug1.png

( 期待していた挙動 - ElectronSwfViewer.htmlをローカルサーバーで実行した例 )
testボタンを押した時に期待する表示.png

electron-packagerでパッケージ後に、SWFが表示されない

main.js

SWFがロードされない.png

まとめ

パッケージ化した時に動かないとなると他の人に渡すためには使えないし、JSとの連携もできないとSWFを表示させているだけのあまり意味のないものになりそう。プラグインを直接埋め込んでるというのも、Flash Playerがリリースされるたびに差し替えないといけないのか?というところが気になる。
Electronのwebview内の扱いがよくわかっていないので、あとでもうちょっと調べたい。

14
14
6

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
14

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?