首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

Titanium view 腾挪 排序

2012-08-21 
Titanium view 移动 排序最近要在tablet和ipad上开发,为了做到cross platform,选用了titanium这个开发工具

Titanium view 移动 排序

最近要在tablet和ipad上开发,为了做到cross platform,选用了titanium这个开发工具,感觉还可以,除了环境慢一些。

Titanium号称一次开发,分别可以在android以及ios上运行。


今天简单实现了一个对几个view移动排序的功能,通过手指的拖拽,拿上来分享一下。

注意只在android上做了测试。


Titanium view 腾挪 排序


var window = Ti.UI.createWindow({    backgroundColor : 'white',    fullscreen : false});var v_space = 10;var c_height = 100;var ismoving = false;var moving_obj;var blank_pos;var start_y = 0;var start_top = 0;var onViewTouchstart = function(e) {    if (!e.source.id || e.source.id != "t_box") {        return;    }    if (ismoving) {        return;    }    moving_obj = getCByTouchY(t_box, e.y);    if (moving_obj != null) {        ismoving = true;    } else {        return;    }    moving_obj.opacity = 0.6;    blank_pos = moving_obj.id;    start_top = moving_obj.top;    start_y = e.y;};var onViewTouchmove = function(e) {    if (!ismoving) {        return;    }    var ey = e.y;    var e_pos = Math.floor((ey - 10) / (v_space + c_height));    var c_willmove = getCByTouchY(t_box, ey);    if (c_willmove != null) {        c_willmove.top = blank_pos * (v_space + c_height) + 10;        c_willmove.id = blank_pos;        blank_pos = e_pos;    } else {    }    moving_obj.top = start_top + ey - start_y;};var onViewTouchend = function(e) {    if (!ismoving) {        return;    }    moving_obj.opacity = 1;    moving_obj.id = blank_pos;    moving_obj.top = blank_pos * (v_space + c_height) + 10;    ismoving = false;    moving_obj = null;};var onViewTouchcancel = function(e) {    if (!ismoving) {        return;    }    moving_obj.opacity = 1;    moving_obj.id = blank_pos;    moving_obj.top = blank_pos * (v_space + c_height) + 10;    ismoving = false;    moving_obj = null;};var t_box = Ti.UI.createView({    id : "t_box",    backgroundColor : "#999",    bottom : 250,    left : 10,    right : 10,    height : 450});for (var i = 0; i < 4; i++) {    var test_view = Ti.UI.createView({        id : i,        backgroundColor : "#00f",        top : i * (v_space + c_height) + 10,        left : 20,        width : 200,        height : c_height,        touchEnabled : false    });    var aLabel = Ti.UI.createLabel({        text : 'Label' + i,        font : {            fontSize : 20        },        textAlign : 'center',        touchEnabled : false    });    test_view.add(aLabel);    t_box.add(test_view);}t_box.addEventListener("touchstart", onViewTouchstart);t_box.addEventListener("touchmove", onViewTouchmove);t_box.addEventListener("touchend", onViewTouchend);t_box.addEventListener("touchcancel", onViewTouchcancel);function getCByTouchY(p, pos_y) {    var childs = p.children;    for (var i = 0; i < childs.length; i++) {        var c = childs[i];        if (c == moving_obj) {            continue;        }        if (c.top < pos_y && (c.top + c_height ) > pos_y) {            return c;        }    }    return null;}window.add(t_box);window.open();


热点排行