Fx0買いました！Firefox OSでゲームアプリを動かしてみる！～（3）enchant.jsで作ったアプリをFx0で動かしてみる（余白の対応 1）～

# Fx0買いました！Firefox OSでゲームアプリを動かしてみる！ <br>　～（3）enchant.jsで作ったアプリをFx0で動かしてみる（余白の対応 1）～

[前回](http://qiita.com/onaona/items/f75becbe1c5f0f301f3b)は[Fx0](http://au-fx.kddi.com/products/)で[enchant.js](http://enchantjs.com/ja/)のサンプルアプリのgetbananaが動作することが確認できました。
が、、画面下に白い余白が広がっていて、なんとも見栄えが悪かったですね。。
![getbanana-fx0.png](https://qiita-image-store.s3.amazonaws.com/0/70507/ce9287bb-0777-9f15-6a8a-ff7d5b4c62e9.png)　余白の領域がわかり易い様に黒枠で囲っています。


今回はこの余白をどうにかしたいと思います。
# 余白が広がる原因
まずは現状の動きを理解するために、getbananaの画面の作成方法を調べてみます。
getbananaのファイル構成から確認してみましょう。
## ファイル構成
getbananaは他のファイルは参照していないので、こちらの**10ファイル**で構成されています。
![files.png](https://qiita-image-store.s3.amazonaws.com/0/70507/dc395c06-0f28-bf20-4dda-4699cad25f12.png)

構成ファイルを種類別にまとめると、このような感じです。

|種類 | ファイル名 | 
|:-----------|:------------|
| html       |index.html |
| [JavaScript](http://ja.wikipedia.org/wiki/JavaScript)   |main.js、enchant.js、nineleap.enchant.js|
| 画像  |chara1.gif、icon0.gif、bg.png、end.png、start.png|
| [アプリマニフェスト](https://developer.mozilla.org/ja/Apps/Manifest)|manifest.webapp|

では、どのようにしてgetbananaを起動しているのか調べてみましょう。
## 起動方法
まず、アプリマニフェストを見て起動のやり方を確認します。
これを見ると、launch_pathがindex.htmlになっています。

```json:manifest.webapp
"launch_path": "/index.html",
```

では次にindex.htmlの中身を確認します。

```html:index.html
<script type="text/javascript" src="enchant.js"></script>
<script type="text/javascript" src="nineleap.enchant.js"></script>
<script type="text/javascript" src="main.js"></script>
```
index.htmlはjs(JavaScript)を参照しています。
つまり、getbananaはindex.htmlから起動され、jsファイルが制御することによって動いているということになります。

## 画面の構成
次は画面の構成を見てみましょう。
getbananaが動いているときのHTMLを見ていきます。

[前回](http://qiita.com/onaona/items/f75becbe1c5f0f301f3b)やったように[WebIDE](https://developer.mozilla.org/ja/docs/Tools/WebIDE)とFx0を接続してgetbananaを起動します。
そこでWebIDEのデバッグボタンを押すとデバッグ用メニューが表示されます。
![webide-debug-button.png](https://qiita-image-store.s3.amazonaws.com/0/70507/736ae2b3-be24-5a37-270c-c276db5711ea.png)

デバッグ用メニューの中の[インスペクタ](https://developer.mozilla.org/ja/docs/Tools/Page_Inspector)を使ってHTMLの情報を確認してみます。
指定した対象に対してのHTMLの構造が表示されます。
![webide-inspector-body.png](https://qiita-image-store.s3.amazonaws.com/0/70507/659a252d-9905-92b9-26de-31393a3cca67.png)
HTML body部の構成とサイズを抜き出すと以下のようになっています。
320x320のcanvasにゲームを描画し、360（320x1.125）に拡張して表示しているようです。

```html:
<div id="enchant-stage"> ← width:360px, height:360px
　<div>                  ← width:360px, height:360px （★360に拡張している  transform: scale(1.125)なので320x1.125=360）
　　<canvas>             ← width:320px, height:320px
```
canvas要素にマウスカーソルを合わせるとcanvasに描画されている画像を確認できます。
試してみたらgetbananaのゲーム画面になっています。
![webide-inspector-body-canvas-background-kuma.png](https://qiita-image-store.s3.amazonaws.com/0/70507/fabfa8f3-722a-f2c3-528e-30455170e0b6.png)

動作中のHTMLを見てgetbananaの画面の構成を見ました。
HTMLの元になるindex.htmlを見てみるとbody部はなんと空になっています。
つまり、getbananaの画面構成となるbody部はHTMLでは無くてJavascriptにより作られていることがわかります。

```html:index.html
<body>
</body>
```

本日はこの位にして、[次回](http://qiita.com/onaona/items/90e8f329711ccd2c1047)はJavaScript部分を見ていきます。

[（1）enchant.jsを使ってみる](http://qiita.com/onaona/items/6f30f5239ebd61391fe2)
[（2）enchant.jsで作ったアプリをFx0で動かしてみる](http://qiita.com/onaona/items/f75becbe1c5f0f301f3b)
[（4）enchant.jsで作ったアプリをFx0で動かしてみる（余白の対応2）](http://qiita.com/onaona/items/90e8f329711ccd2c1047)
[（5）enchant.jsで作ったアプリをFx0で動かしてみる（余白の対応3）] (http://qiita.com/onaona/items/8ebe91b3f82d4dff6797)


[PHASERを使ってゲームアプリを動かしてみた](http://qiita.com/onaona/items/ef113de5e1efdef74c93)