k-factory

html5, javascript, css, Unity, Three.js

ガラケーからスマホに移植する際のswfの拡縮防止対策

Androidのflashplayer開発も終わってしまい、
需要はあまりなくなってきちゃいましたが・・・

ガラケーだと、サーバー側でswfに変数を埋め込んで、
クライアントに返すやり方を結構みかけますが、

そのままスマホに移植してしまうと、

swfがピンチ・イン ピンチ・アウト(拡大縮小)が出来てしまいます。

しかも、端末のデフォルト拡大縮小ボタンが表示されてしまい
swfのその位置にボタン等をおいてしまうと
わずらわしくてしかたありませぬ。

なので、
下記1行のコードをswf入れます。
(※下記はflash lite1.1〜2を対象とするものです)

getURL("javascript:var _head=document.createElement('head');var _meta=document.createElement('meta');_meta.name='viewport';_meta.content='width=device-width, minimum-scale=1.0,  maximum-scale=1.0, user-scalable=no';_head.appendChild(_meta);var _html=document.getElementsByTagName('html')[0];var _body=document.getElementsByTagName('body')[0];_html.insertBefore(_head,_body);");

すると、拡大縮小はされなくなります。

ざっくり説明すると、
swf側にjsを書いておいて、
ブラウザがデフォルトで生成するhtmlのheadタグにviewportタグを追加する仕組みです。

注意点としては、ユーザーアクションがない状態で、getURLをたたいているので、
もしかしたら、いずれ使えなくなってしまうかもしれないことですね。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です