表示調整
閉じる
挿絵表示切替ボタン
▼配色
▼行間
▼文字サイズ
▼メニューバー
×閉じる

ブックマークに追加しました

設定
0/400
設定を保存しました
エラーが発生しました
※文字以内
ブックマークを解除しました。

エラーが発生しました。

エラーの原因がわからない場合はヘルプセンターをご確認ください。

6/210

とりあえず実験実験

前回までで、なんとなくわかってきた気がするので色々試してみたいと思います。


まず、当面の目標は、ゲームブックの各ページをデータとして用意して、これをモバイルアプリで利用(中身を表示)するまでです。


試行錯誤が多いと思いますが、それも含めて書いていきましょう。


1.データ用のフォルダーとデータを用意


プロジェクトフォルダ内の\src\app\home\内に、 mydata と言うフォルダを作りました。


次にVisualStudioCodeで新規ファイル作成→形式:JSONでpage.jsonと言うファイルを作りました。


中は、こんな感じです。

------------------------------------------------------------

{

    "1":{

        "Text1":"湖畔の城",

        "Text2":"湖畔にそびえる古城。かっては白鳥城の名で呼ばれたほどの名城だが、現在は住むものとて無い。",

        "Text3": "あなたは、ふとした事からこの城に眠る宝物の噂を聞いた。その噂によれば、城の秘密部屋に、かっての城主で白鳥の騎士と呼ばれた『ロラン・ドゥ・オーベルジーン』の宝剣が眠るというものだ。",

        "Text4": "",

        "Text5": "あなたは、その宝剣を手に入れようと決意した。"

    },

    "2": {

        "Text1": "湖畔にて",

        "Text2": "かっての名城も今は城下に山賊の集団が住みつき、陸伝いにはとても近づけないという。そんな訳で白鳥城に向かうには湖を渡るしかないらしいが、あいにくとあなたは泳ぎが出来ない。",

        "Text3": "とりあえず湖畔に沿って歩いていると、あなたは一人の漁師に会った。漁師は400 GPで白鳥城の船着場まで送ってくれるという。",

        "Text4": "",

        "Text5": ""

    }

}

------------------------------------------------------------


ここまではVisualStudioCodeの便利さも感じつつ(メモ帳で書いちゃうような人なので)問題なく終了!


2.ページデータのモバイルアプリでの利用


このページJSONをアプリで使うには、プロジェクトフォルダ内の\src\app\home\内の app.module.ts あたりでimportしてやれば良いのかなと、VisualStudioCodeで app.module.ts を編集してみました。


----------------------------------------

import{ PageJson} from './mydata/Page.Json'

----------------------------------------


するとVisualStudioCode様に、『モジュール './mydata/Page.Json' またはそれに対応する型宣言が見つかりません。ts(2307)』と怒られました。(でも怒ってくれるのはプログラム開発的にはありがたい限りです)


まずピンと来たのは、先ほど作ったmydataと言うフォルダが信用されていないのでは?と言う事です。


そこでVisualStudioCodeのファイルメニューからフォルダーをワークスペースに追加してやりました。


すると若干文言が違うエラーをアドバイス付きで吐き出してきました。


------------------------------------------------------------

'PageJson' が宣言されていますが、その値が読み取られることはありません。ts(6133)

モジュール './mydata/Page.json' が見つかりません。'--resolveJsonModule' を使用して '.json' 拡張子を持つモジュールをインポートすることをご検討ください。ts(2732)

------------------------------------------------------------


ここで出てきた'--resolveJsonModule'とは何者?という事で調べてみると、プロジェクトフォルダ内のtsconfig.jsonと言うファイル内にちょこっと追加するといいよと言う情報が出てきたので、その通りにします。


------------------------------------------------------------

{

前略

    "compilerOptions": {

中途略、以下2行追加

        "resolveJsonModule": true,

        "esModuleInterop": true

    }

後略

}

------------------------------------------------------------


まだエラーと言ってますが、少しは改善。以下メッセージです


------------------------------------------------------------

import PageJson

'PageJson' が宣言されていますが、その値が読み取られることはありません。ts(6133)

モジュール '"c:/gamebook/MyFirstApplication/GameBook/src/app/mydata/Page"' にエクスポートされたメンバー 'PageJson' がありません。ts(2305)

------------------------------------------------------------


色々試行錯誤で、次の書き方なら通るのを確認


----------------------------------------

import page from './mydata/page.json';

----------------------------------------


ただし読み取られることはない。と言う警告は相変わらずです。


うん、困りました。


仕方ないので、色々試してみますが、まず色々(エラーなどを探すための)情報を吐き出すことに挑戦です。


3.console logの実装


とりあえずアプリ開発でつまずいたとき、どこで何があったのかを調べることは重要です。


Ionicでのモバイルアプリ開発でもそれは同じでしょうが、良くあるconsole logが動くかを試します。


プロジェクト内の\src\app\home\home.page.ts のconstructorにちょっとコードを追加して実験です。

(constructorと言うのは、自分自身を作る命令とでも考えてください。一番最初に問答無用で動く部分です)

----------------------------------------

export class HomePage {

title = 'テストタイトル';

constructor() {console.log('test log')} ← ここの()の間にconsole.log('test log')を追加

}

----------------------------------------


アプリを起動すると思惑通りに、ブラウザ開発ツール内に'test log'の文字が出力されました。


4.エラーコードの解決


読み取られることはない。と言う警告ですが、解決です。


宣言したけど使っている場所がないよ?と言うエラーでした。


試しにconsole logで出力させたら、以下のように表示です。

----------------------------------------

Object { Text1: "湖畔の城", Text2: "湖畔にそびえる古城。かっては白鳥城の名で呼ばれたほどの名城だが、現在は住むものとて無い。", Text3: "あなたは、ふとした事からこの城に眠る宝物の噂を聞いた。その噂によれば、城の秘密部屋に、かっての城主で白鳥の騎士と呼ばれた『ロラン・ドゥ・オーベルジーン』の宝剣が眠るというものだ。", Text4: "", Text5: "あなたは、その宝剣を手に入れようと決意した。" }

----------------------------------------


うん、さすがに(進んでいるとはいえ)がっくり来たので、本日はこれまで!


評価をするにはログインしてください。
この作品をシェア
Twitter LINEで送る
ブックマークに追加
ブックマーク機能を使うにはログインしてください。
― 新着の感想 ―
このエピソードに感想はまだ書かれていません。
感想一覧
+注意+

特に記載なき場合、掲載されている作品はすべてフィクションであり実在の人物・団体等とは一切関係ありません。
特に記載なき場合、掲載されている作品の著作権は作者にあります(一部作品除く)。
作者以外の方による作品の引用を超える無断転載は禁止しており、行った場合、著作権法の違反となります。

この作品はリンクフリーです。ご自由にリンク(紹介)してください。
この作品はスマートフォン対応です。スマートフォンかパソコンかを自動で判別し、適切なページを表示します。

↑ページトップへ