Aqualeadトラブルシューティング


目次

1. ウィジェット
1. ウィジェットのステートが思うように変化しない
2. ウィジェットがクリックに反応しない
3. ウィジェットが決定状態にならない
2. ファイル
1. アーカイブ内のファイルが読み込めない
3. 画像
1. ALImageMergeで生成した画像が欠けている

第1章 ウィジェット

1. ウィジェットのステートが思うように変化しない

ウィジェットは多くの設定が有り複雑なため、設定を間違えると意図したとおりに動かないことがあります。 この中で、決定にならない、フォーカスが移らない等ステート変化が意図したとおりにならない場合は、ログ出力を有効にすることで原因がわかることがあります。

ログ出力を有効にするには

  ALWidget::SetLogLevel( ALLOG_LEVEL_DEBUG );

をあらかじめ実行しておきます。 こうすると、全てのウィジェットのステート変化のログがコンソールに出力されるため原因がつかみやすくなります。

ログにはウィジェットに設定したキャプションも表示されるため、 SetCaptionもしくはCopySetCaptionでキャプションを設定すると区別しやすくなります。

なお、ログ中adr:で表示されるアドレスは、ウィジェットの実装クラスのポインタです。 GetImp関数で実装クラスのポインタを取得出来ます。

2. ウィジェットがクリックに反応しない

ウィジェットはクリックやタッチに反応しますが、そのためにはクリック判定用のコリジョンを設定する必要があります。 コリジョンは各種2Dコリジョンを生成し、AddCollision関数で追加することも出来ますが、 AddFitCollision関数を使用することで、ウィジェットと同じサイズのコリジョンを追加することが出来ます。

3. ウィジェットが決定状態にならない

ウィジェットは、デフォルト設定ではフォーカス時にもう一度選択することで決定状態になります。 その時、親ウィジェットにもフォーカスが存在する必要があります。

フォーカスの有無に関係なく、決定状態にするにはSetDirectDecision関数でtrueを設定します。 これで一度目の選択で決定状態になります。

なお、他ウィジェットの含めることが出来るALContainerWidgetやそのサブクラスは決定状態になりません。 ALCellListWidgetやALGridWidgetのCellもALContainerWidgetですのでそのままでは決定状態にはなりません。 必要があれば、ALButtonWidget等を追加する必要があります。

第2章 ファイル

1. アーカイブ内のファイルが読み込めない

ALArchiveを生成してaarを読み込むと、そのアーカイブ内のファイルを読み込むことが出来ます。

そのファイルが読み込めない場合、以下を確認してください。

・aar内に本当にそのファイルが含まれているか

まず、ALArcDumpツールを使用して、そのaar内に目的のファイルがあるか確認してください。

・実行時に正しく読み込まれているか

次に、実行時に読み込まれているか確認します。

  ALArchive::SetLogLevel( ALLOG_LEVEL_DEBUG );

を実行することで、最初に目的のアーカイブを生成したときに、含まれるファイルをコンソールに出力します。 なお、すでに生成済みのアーカイブは共有されるため、 SetLogLevelを実行前にアーカイブが生成されていると出力されません。

・ファイル名の長さは32文字以下か

aarファイルの現在のフォーマットでは、拡張子を含んだファイル名は32文字です。 32文字をオーバーすると、オーバー分の後ろが削られ拡張子が不完全になります。

Aqualeadでは拡張子からファイルの種別を判定するため、拡張子が不完全な場合、 ファイルが存在しても、該当する種別として認識されず読み込めないことがあります。 その場合は、ファイル名の長さを32文字以下に変更してください。

第3章 画像

1. ALImageMergeで生成した画像が欠けている

ALImageMergeでテクスチャを生成する際、ファイル名に@が含まれているとその個数分分割します。 その際、実際の画像の個数と@で指定する個数がずれていると、分割時に中途半端な位置で分割され、 結果画像が欠けているように見えることがあります。

@を使用している場合は、その指定個数が正しいか確認してください。