2013年10月29日火曜日

JavaScript→Java→JavaScriptの連携


android開発前回まで

前回はJavaScriptでタッチイベント取得する方法を模索でした。


今回はJavaScript→Java→JavaScriptの連携を載せます。


JavaでAndroid開発の環境を作成する方法はほかサイトをあさってください。

比較的すぐ見つかるはずです。



JavaからHTMLを呼び出すには以下を実装します。


Java→HTML
Javaのres/layoutないにあるレイアウトにWebViewを実装したレイアウトファイルを作成。

そのレイアウトファイルに関連づいたソース内に以下を記載。

// クラス変数にでも記載する。
WebView myWebView;


// レイアウトで指定したWebViewのIDを指定する。
myWebView = (WebView) findViewById(R.id.webView1);

// JAVAスクリプトを有効化
myWebView.getSettings().setJavaScriptEnabled(true);

// リンクをタップしたときに標準ブラウザを起動させない
myWebView.setWebViewClient(new WebViewClient());

// Javaスクリプトからデータを受け取る用
myWebView.addJavascriptInterface(new JavascriptInterface(), "Android");

// ページ表示
myWebView.loadUrl("file:///android_asset/draw.html");
// ↑これでassetsフォルダにdraw.htmlを置けば起動する。


addJavascriptInterfaceはJavaScriptとの連携に必要です。


JavaScript→Java

Javaでは以下の定義を記述します。

private class JavascriptInterface {
public void メソッド名(final String x) {
// 実装コード
}
}

JavaScriptの呼び出し場所に以下の記述をします。
Android.メソッド名(x);


これでJavaScriptからネイティブコードを読み出せます。

Java→JavaScript

Javaの呼び出し場所に以下の記述をします。
myWebView.loadUrl("javascript:関数名("引数データ")");


JavaScriptでは以下の定義を記述します。
var 関数名 = function(引数データ){
// 実装コード
}

これでネイティブコードからJavaScriptを読み出せます。


以上が一般的なJavaScript→Java→JavaScriptの連携になります。
(セキュリティ的な関係でJava→JavaScriptは結構ちゃんと実装したほうがいいらしいです。
というか使わないほうがいい?)



JavaScriptからJavaを呼び出すときはJavascriptInterfaceのクラスを呼び出してしまっているので

親画面のクラス変数を使いたい場合はハンドラーを使って親画面処理として走らせてやります。

private class JavascriptInterface {
public void メソッド名(final String x) {
// ハンドラーを使ってDrawTest画面の処理として実行させる
handler.post(new Runnable() {
@Override
public void run() {
//実装コード
}
});
}
}



まだまだ勉強中ですが今はこんな感じで

ハイブリッド型アプリを作成中です。


次回は。。。DB系かな?

2013年10月18日金曜日

リスポーン地点の整備

Minecraft YamamototaroServer
詳細は↑ここ↑

先週あたりからリスポーン地点の整備と仮拠点作成を行っていました。


破壊できない岩盤でクリーパーから身を守ります。



扉は鋼鉄製ですのであらゆる外敵から身を守ります。



近くにはダイヤピラミッドが立っています。



再生能力と耐性が付加されます。

初心者も安心設計です。


こんな感じのピラミッド付施設は各所に設置しようかと思います。



管理者ではなくサバイバーとしてプレイ中。


とりあえず初期プレイで欠かせないのが食糧。


比較的容易に手に入る小麦でパンを作りました。


近くには仮拠点(洞窟タイプ)を建設しました。


鍵をかけたのでは入れないはず、、、

まあ穴あけるとは入れるんですがね、、、



参加者随時募集中です。

土日祝日のみですがお暇な方はどうぞ。
Minecraft YamamototaroServer

2013年10月11日金曜日

android開発

10月から会社復帰し、部署も変わったのですが
さっそく仕事もらいました。
javaとobjective-c使いになって!


...


ワクテカが止まらない~。

というわけでまずはjavaから手を付けました。


この2週間でとりあえず
HTML5+javaScript+javaネイティブアプリ
の開発がひと段落しました。

C#使いのわたしとしてはjavaは余裕だったのですが、、、

javaScript

こいつが曲者でした。

javaScriptなんてかんたんでしょ?とか思ってた時期が私にも(re



今回は最初の一週間で本の中に乗ってる
HellowWorld系のサンプルプログラム群を一通りつくって、
残りの一週間でHTML5で使えるcanvasを使ったお絵かきソフトをつくりました。

 ここ らへんを見てもらえるとマウスのお絵かきソフトが作れます。
canvasについては こちら を見てもらえるとわかると思います。

このサンプルアプリをスマートデバイス用に動かして、
いろいろアレンジ加えました。


概要みたいなの
タッチしたら画面にお絵かきできる!
描画情報をDBに格納できる!
DBから描画情報を読み込んで画面に表示させる!
DBアクセスはネイティブで!


こんな感じでした。


まずここのサンプルプログラムをまるコピ。
マウスで絵が描ける!ってところまでは余裕でした。


しかし、、、

マウス→タッチ

ここを理解するまで2,3時間かかりましたorz


結果はこう

window.onload = function(){

var area = document.getElementById("HTMLのキャンバスID");
area.addEventListener('touchstart',  動作させるメソッド, false);
area.addEventListener('touchmove', 動作させるメソッド, false);
area.addEventListener('touchend', 動作させるメソッド, false);
};

こいつを追加するだけでタッチリスナーを生成できるみたいです。
なんかいろんなサイト駆けずり回っていっぱい目にしていたはずなのに。。。

とりあえず描画はできたとろころで一日目終了、、、


なかなか先が長そうだ、、、。



続きは次回にでも。

要望なんかあればソースもそのうちうpするかも。
ないかw。


2013年10月6日日曜日

無双についに初音ミクが!

嘘ですごめんなさい。




なんかいつの間にかストーリークリアしていて


カラーエディットできるようになってたので




だっきちゃんをミクカラーにしてみました。










































完全に不一致!!!



職人さんはもっとうまくやってくれるは、、、ず、、、。



















無双Orochi2 Ultimate

結構やってるんだけどいまだにストーリーが終わらない。





とりあえずぎんちよさまは3回転生させましたw



ぎんちよさまかっこよすぎwww



仙界武器もとって暴れまくってます。



このwikiみて属性付けてるんですが
http://wikiwiki.jp/orochi2ultim/?%C0%EF2%2F%CE%A9%B2%D6%FB%EB%C0%E9%C2%E5


これつけてます。
『波撃』『風』『斬』『神速』『吸生』『雷』『誘爆』『天舞』




とりあえず
『誘爆』『天舞』この二つがあれば難しいでも余裕でクリアできます。



ただ今回は味方がよく死にます。



出撃前のSaveは忘れないほうがいいでしょう、、、




あとまだwikiには載ってないけど真・天雷磐長っていうLv5の武器が作れるようになってる。




とりあえずストーリクリアするまではアンリミテッドモードはやらないでおくので、

しばらくは手に入れられないかな。



うわさではLv4の武器のなじみが99になるとかなんとか、、、



できれば仙界武器をMAXまでしてほしいなぁ



2013年10月4日金曜日

ゲームとかアニメとかプログラムとか

ゲームとかアニメとかプログラムとか


いろいろ書いて行けたらいいな



って思ってます。





これからのネタ
PS3
無双Orochi2Ultimate

XBOX360

PC
Minecraft
Sims3
Skyrim


よろしくです。