2012年7月22日日曜日

【Titanium】Requireの子から親への連携

前回からの続き的な内容。
Requireの中にあるボタンで発生したイベントからいかにして親のオブジェクトに連携するか悩んでいましたが、
最適解かはわかりませんが、fireEventで解決させました。

exports.view = function(_viewNum){
    var view = Ti.UI.createView({});

    var button = Titanium.UI.createButton({
        title:’ボタン',
    });
    view.add(button);

    button.addEventListener('click', function(){
            view.fireEvent('newEvent');
    });

    return view;
}

これで親側にあるexports.viewに当たるオブジェクトにイベントを伝えられるので、
あとは親側のオブジェクトにnewEventをaddEventListenerすれば大丈夫。

最初、全部グローバルオブジェクト(?)として設定すれば解決するかと思ってたんですが、
それだとiPhoneだと動いてもAndroidだとダメみたいだったんであきらめました。
使い方としても本来のCommonJSの仕様から外れたものみたいですし・・・。

もっと簡単に作れるかなーと思ってましたが、なんだかんだで色々なところでひっかかりますね。
JavaScriptで簡単な制御以上の事をやった事がないからだと思いますが。

解決したと思ったら今度はTextFieldのchangeイベントを使おうとするとAndroidでエラーになってしまって困ってます。

0 件のコメント:

コメントを投稿