暴走漫画

目前暴走漫画demo主要做出了5个一级页面。当按下页面下方对应按钮时,按钮颜色改变,并且在do_ViewShower中展示出对应页面(page3则是新打开一个页面)。       一  总体布局 
            在主页面index中,下方是五个控制页面显示的按钮;上方是do_ViewShower组件,用来存储将要展示的页面,如图index所示。其中do_ViewShower组件与按钮之间的关系对应的代码如下:[mw_shl_code=applescript,true]

//声明四个按钮,在主页中间展示
var button0=ui("do_alayout_4");
var button1=ui("do_alayout_5");
var button2=ui("do_alayout_7");
var button3=ui("do_ALayout_17");
var zhongyang=ui("do_ALayout_18");
var iv0=ui("do_imageview_1");
var iv1=ui("do_imageview_2");
var iv2=ui("do_imageview_4");
var iv3=ui("do_imageview_5");
var buttons = [ button0,button1,button2,button3 ];
var ivs= [iv0,iv1,iv2,iv3];
//中央按钮,按下出现新的一页
zhongyang.on("touchDown",function()
                {
           zhongyang.source="source://image/anxia.png";
        
                });
zhongyang.on("touch",function()
                {
           zhongyang.source="source://image/source://image/13.png";
           app.openPage("source://view/page3/cell3.ui");
                });
                
var checkFun = function(index) {
        for (var i = 0; i < buttons.length; i++) {
                if (index == i) { // 表示选中了第几个
                         ivs.source = "source://image/d" + i + ".png";
                         
                         
                } else {
                         ivs.source = "source://image/s" + i + ".png";
                         
                }
        }

viewShower.showView("view" + index, "fade", 300);
};

buttons.forEach(function(button, i) {
        button.on("touch", function(data, e) {
                checkFun(i);
                 
        });
});

var viewShower = ui("do_ViewShower_1");
var data = [ {//写数据
        "id" : "view0",
        "path" : "source://view/page1/cell1.ui"
}, {
        "id" : "view1",
        "path" : "source://view/page2/cell2.ui"
}, {
        "id" : "view2",
        "path" : "source://view/page4/cell4.ui"
}, {
        "id" : "view3",
        "path" : "source://view/page5/cell5.ui"
}  ];

viewShower.addViews(data);//绑定数据

viewShower.showView("view1");//确定showvoew最开始显示的页面

//viewShower订阅一个viewChanged事件,当viewShower切换View 时触发
viewShower.on("viewChanged", function(data, e) {
        //触发一个自定义事件 indexChanged, 在view0中订阅该事件
//        page.fire("indexChanged");
        //触发一个带参数的自定义事件,data的值为:View切换后的id
        page.fire("indexChanged",data);
});

//翻页

page.on("back",function(){app.closePage()});[/mw_shl_code]

                          

二  page部分 
                   下面是五个页面从左到右的概扩。

(1)page1部分主要使用listview,页面可以下拉刷新,如图 1.png所示。

在listview中使用了三个cell(结构如图11.png),分别对应与标头信息(cell1list1.ui),图片(cell1list2.ui)与结尾(cell1list3.ui)。刷新功能部分,需要首先将listview的ui界面中的isHeaderVisble设置为true。listview使用代码如下所示:[mw_shl_code=javascript,true]var app = sm("do_App");

var page = sm("do_Page");
var nf = sm("do_Notification");

var listview = ui("do_ListView_1");
var list_listdata = mm("do_ListData");
listview.bindItems(list_listdata);

//listview绑定数据,绑定事件,点击触发
list_listdata.addData([
                {template:0,"image":"source://image/71.png","name":"indifference","date":"8.24"},
                {template:1,"image":"source://image/image1.jpg"},
{template:2,"zan":"123个赞","pinglun":"341个评论","image1":"source://image/51.png","image2":"source://image/52.png","image3":"source://image/53.png"},
                {template:0,"image":"source://image/72.png","name":"cross","date":"8.25"},
                {template:1,"image":"source://image/image2.jpg"},
{template:2,"zan":"23个赞","pinglun":"123个评论","image1":"source://image/51.png","image2":"source://image/52.png","image3":"source://image/53.png"}
                  
     ]);
  listview.refreshItems();
listview.on("pull", function(data) {
            /**
             * @此事件将会多次执行.
             * @state == 0 : pull动作开始
             * @state == 1 : pull动作持续中
             * @state == 2 : pull动作结束
             */
          
            if (data.state !== 2) return;
            this.rebound();
        });[/mw_shl_code]

                      


            (2)page2部分的实现比较复杂,使用了listview,segment,slideview三个组件的嵌套循环。
                   我们首先对三层组件的嵌套进行分解。首先在page5的界面中,我们可以看到使用了一个listview使得界面可以上下滑动。然后在热门收藏对应的这一部分,界面是可以左右滑动的,这是使用了segmentview。最后,每一个可以左右滑动的小框,每隔一定时间又会自动变换图片,这一部分是使用slideview与timer制作。
                   在写页面时,从外圈向里圈写。 cell2.ui的布局如图221所示,这里只有一个listview,代码如下:
[mw_shl_code=javascript,true]
//获取listview,绑定listdata
var listview = ui("do_ListView_1");
var list_listdata = mm("do_ListData");
listview.bindItems(list_listdata);

//listview绑定数据,绑定事件,点击触发
list_listdata.addData([
                {template:0},
                {template: 1,"image1":"source://image/16.png","image2":"source://image/17.png"},
                {template: 1,"image1":"source://image/18.png","image2":"source://image/19.png"},
                {template: 1,"image1":"source://image/110.png","image2":"source://image/111.png"},
                {template: 1,"image1":"source://image/112.png","image2":"source://image/113.png"},
                {template: 1,"image1":"source://image/114.png","image2":"source://image/115.png"},
                {template: 1,"image1":"source://image/116.png","image2":"source://image/117.png"},
                {template: 1,"image1":"source://image/118.png","image2":"source://image/119.png"},
                {template: 1,"image1":"source://image/120.png","image2":"source://image/121.png"},
                {template: 1,"image1":"source://image/122.png","image2":"source://image/123.png"},
                {template: 1,"image1":"source://image/124.png","image2":"source://image/125.png"}
     ]);
  listview.refreshItems();
[/mw_shl_code]
                       在cell2.ui的两个cell(cell2child.ui , cell2child1.ui)中,cell2child1.ui(如图222)是一个最基本的cell,而cell2child.ui中包含了一个segmentview,在cell2child1.ui对应的js文件(cell2child.ui.js)中,对segment进行了数据绑定,代码如下:
[mw_shl_code=javascript,true]var app = sm("do_App");
var page = sm("do_Page");
var nf = sm("do_Notification");

ui("$").setMapping({
        
     
});

//获取segmentview,绑定listdata
var SegmentView = ui("do_SegmentView_2");
var SegmentView_listdata = mm("do_ListData");
SegmentView.bindItems(SegmentView_listdata);

//segmentview绑定数据,绑定事件,点击触发
SegmentView_listdata.addData([  {template:0},
                          {template:1},
                          {template:2},
                          {template:3},
                          {template:4}     
     ]);
SegmentView.refreshItems();
  [/mw_shl_code]
                     我们可以从cell2child.ui.js的代码中看到,segmentview一共绑定了五个cell。在cell2childseg文件中,实现了本嵌套的第三层。在cell2child的模板cell2childseg2.ui,cell2childseg5.ui,cell2childseg6.ui,cell2childseg7.ui,cell2childseg8.ui,中使用了一个slideview组件。我们在cell2childseg2.ui,cell2childseg5.ui,cell2childseg6.ui,cell2childseg7.ui,cell2childseg8.ui,对应的js文件中对slideview的内容进行了绑定,同时加上了定时器,使它们可以自动翻转。这里选取cell2childseg2.ui为例,代码如下:
[mw_shl_code=applescript,true]var app = sm("do_App");
var page = sm("do_Page");
var nf = sm("do_Notification");

ui("$").setMapping({

});

var do_SlideView_1 = ui("do_SlideView_1");
var slide_listdata = mm("do_ListData");
do_SlideView_1.bindItems(slide_listdata);

//listview绑定数据,绑定事件,点击触发
slide_listdata.addData([
{template:0,"text":"总有一种世界是你未曾见过","image":"source://image/q7.jpg"},
{template:1,"text":"总有一种世界是你未曾见过","image":"source://image/q8.jpg"},
{template:2,"text":"总有一种世界是你未曾见过","image":"source://image/q9.jpg"}

]);
do_SlideView_1.refreshItems();
  
var i=1;
var timer01 = mm("do_Timer");
timer01.delay = 0;
timer01.interval = 1000;

var DURATION01 = 0;

timer01.on("tick", function(){
    if(DURATION01 >3){
        DURATION01 = 0;
        do_SlideView_1.index=i%3;
        i++;
    }
    DURATION01++;
});
timer01.start();
[/mw_shl_code]          最后我们看slideview所绑定的数据,有四个cell,则有四张图片来回改变。slideview的模板直接就是一张图片。这样,我们就完成了三个组件的嵌套使用。

            

        (3)page3部分与其他page不同的是,点击按钮弹出的是一个单独的页面。
                     当点击中间的按钮时,下图page3显示,当点击page3图片所示的“X”时,页面关闭。代码如下:[mw_shl_code=javascript,true]
var nf = sm("do_Notification");
var app = sm("do_App");
var page = sm("do_Page");

var close=ui("do_ALayout_2");

//翻页
page.on("back",function(){app.closePage()});
close.on("touch",function(){
app.closePage()
});
[/mw_shl_code]
                                              
            (4)page4比较简单,直接画页面就可以。
                              
                                
            (5)page5主要使用listview组件。
                     代码如下:[mw_shl_code=applescript,true]//related to cell5.ui
var nf = sm("do_Notification");
var app = sm("do_App");
var page = sm("do_Page");
var listview = ui("do_ListView_1");
var list_listdata = mm("do_ListData");
listview.bindItems(list_listdata);
list_listdata.addData([
{template:0}
]);
listview.refreshItems();
[/mw_shl_code]                    

时间: 2024-10-11 02:01:50

暴走漫画的相关文章

爱奇艺、优酷、腾讯视频竞品分析报告2016(一)

1 背景 1.1 行业背景 1.1.1 移动端网民规模过半,使用时长份额超PC端 2016年1月22日,中国互联网络信息中心 (CNNIC)发布第37次<中国互联网络发展状况统计报告>,报告显示,网民的上网设备正在向手机端集中,手机成为拉动网民规模增长的主要因素.截至2015年12月,我国手机网民规模达6.20亿,有90.1%的网民通过手机上网. 图 1  2013Q1~2015Q3在线视频移动端和PC端有效使用时长份额对比 根据艾瑞网民行为监测系统iUserTracker及mUserTrac

作业七:B站安卓手机客户端体验

上次作业中提到初入B站的经历.体会.以及B站首页问题衍生的对目前web网页的看法.随着几天的慢慢深入体验, 在B站上发现了越来越多的感兴趣的UP主和UP主们的视频作品.我第一个关注的是暴走漫画的敖厂长,刚看到就关注了 敖厂长,毕竟暴漫粉丝.看了几期敖厂长的游戏解说视频后不得不佩服敖厂长的口才.下面的“超级马里奥2”就是经 典之作.“[敖厂长]超级玛丽扭曲的黑历史” 接着就遇到了用琵琶弹奏170加速版千本樱的大神 以及有Epic史诗工作坊出品的MC游戏中还原四分之一的圆明园的场景图,简直就是神作!

浅谈短视频APP的发展趋势

2014年6月20日,在AppAnnie最新发布5月应用指数中,美拍荣登“非游戏类iOS榜单”全球下载量第一位置,成为全球iOS应用商店最热门APP.能在<AppAnnie应用指数>这份App市场晴雨表上大放异彩,美拍必然有它的独特之处.而美拍正是我们现在所熟知的最热门的短视频APP之一.而其他短视频APP诸如腾讯的微视之流也逐渐占据了我们的生活.那么,短视频APP为什么会突然爆火于网络?其未来发展趋势又是如何呢? 我们以美拍为例,首先从其优点说起. 第一,短视频APP圈住了如今爱美的女性.

Hibernate 一对多双向关联Demo

以Classes[班级]和Student[学生]为例的Demo //Classes.java public class Classes implements Serializable { private long cid; private String cname; private String cdesc; private Set<Student> students; //get和set } //Student .java public class Student implements Se

2014 CSDN博文大赛初赛晋级名单公布

博文大赛第一阶段(2014年6月10日-2014年7月15日)已经结束,初赛的晋级名单已在7月15日出炉. 现将晋级名单公布: 移动开发 start530              Cocos2dx 小技巧(十五)话说ScrollView的delegate实现过程 wwj_748             Cocos2d-x-Lua示例项目HelloLua Chillax_li             暴走漫画系列之高仿淘宝收货地址(附demo) wwmusic            iOS7 -

视频直播的发展趋势分析

视频直播的分析与发展 在讲视频直播之前,先讲一讲直播.直播是怎么来的呢?从传播消息的角度上来说,视频和文字.图片.音乐一样都是传播消息的手段,古时以文字传播消息,之后出现了图片和音乐,再之后视频开始流行.出现这种演变的原因是什么呢?我想主要是由于读者的需求日益提高和传播技术的不断发展.读者不满足于当前的文字阅读,由此出现了图片与音乐,到后来图片与音乐也无法满足日益增长的需求,则出现了视频.视频具有文字.图片.音乐不具有的优势:传递的信息多,更让人有代入感,给观众更综合的体验.虽然视频有着无可比拟

网红淘宝店的成与败

近年来,随着直播的人气火热上升,越来越多的网红出现在我们的眼前.很多人都想成为网红,为什么呢?因为他们有人气,有喜欢自己的粉丝,而他们能通过这些粉丝和人气来获取利益,例如通过自己的人气接广告或卖东西给喜欢自己的粉丝.这就是为什么淘宝里有越来越多的网红店,他们通过自身的人气效应给自己打广告,在直播或博客中秀出自己店里的商品. 想要了解网红淘宝店的成与败,我们先来谈论网红淘宝店的运营方式.网红淘宝店当然老板是网红,但其实在幕后有一个操作团体,他们不仅起到封装网红的作用,还帮他们进货出货,网红只要负责

一张榜单如何透视企业微博品牌价值?

每月定时出炉的企业微博品牌榜,是大量后台多体系数据对比.判断.排名后,自动生成的榜单.尤其在4月引入外分评价维度.重设考核体系后,企业微博品牌榜的出炉带有更多优化变革的意味.调整后的榜单,显得更加真实合理和具有指导性.参考性,让纷繁复杂的社交价值变得更加清晰明朗.同时,也让那些占领榜单制高点品牌的成功轨迹也变得有规可循. 从第52名到第2名的变化源于啥? 在4月企业微博品牌榜中,魅族成为最大赢家,@魅族科技 和@魅蓝手机 成功包揽企业官V排行榜前2名!尤其是@魅蓝手机 表现尤为突出,从3月份的5

程序员网址导航

社区.问答 infoQ infoQ通过视频.文章.沙龙等方式促进软件开发领域知识与创新的传播 stackoverflow 高质量的国外IT问答网站,这里汇聚了全球的程序员精英为你回答问题 SegmentFault 中文版的stackoverflow, 专注IT问答社区 Quora Quora 由FB前雇员创办的问答网站 知乎 国内 No.1 的问答社区, 网友讨论气氛浓厚且专业, 苦逼网很多网址在知乎收集, 自扔肥皂感谢- v2ex 如果你上班无聊,想看同行们都在聊些什么,这个适合你. Hack