1.一些命令

创建APP

#  Make sure the current working directory is the Sencha Touch 2 SDK 例如D:\Program Files\wamp\www\sencha-touch-2.1.1-commercial

cd /path/to/sencha-touch-2-sdk

sencha generate app MyApp /path/to/www/myapp

  

生成模型MODEL

cd /path/to/www/myapp

sencha generate model User id:int,name,email

更新

cd /path/to/www/myapp

sencha app upgrade /path/to/new_version_of_sdk

2.Demo实例  

根据官方的指导手册,使用Sencha Cmd我们可以快速的创建一个App.

我们首先预览一下改进的界面:

Pic-1 首页

pic-2 音乐

pic-3 视频

pic-4 blog

pic-5 联系我们

1)修改 MyApp\app\view目录下的MainView.js 文件

Ext.define('MyApp.view.Main', {
extend: 'Ext.tab.Panel',
xtype: 'main',
requires: [
'Ext.TitleBar',
'Ext.Video',
'Ext.dataview.NestedList',
'Ext.data.proxy.JsonP',
'Ext.form.Panel',
'Ext.Audio',
'Ext.form.FieldSet',
'Ext.field.Email'
],
config: {
xtype: 'tabpanel',
fullscreen: true,
tabBarPosition: 'bottom', items: [
{
title: '首页',
iconCls: 'home',
scrollable: true,
cls: 'home', html: [
'<p> </p>',
'<img height=260 src="resources/icons/yu.png" />',
'<h1>欢迎来到【鱼的记忆】</h1>',
'<p>Hi, I\'m Tony, Welcome to my blog, may you will like it.',
'<br/>[1]联系方式: leegtang@126.com</p>',
'<h2>--鱼的记忆</h2>'
].join("")
},
{
title: '音乐',
iconCls: 'volume',
displayField: 'title',
xtype: 'audio',
url : 'resources/audio/adq.mp3' },
{
title: '视频',
iconCls: 'video',
xtype : 'video',
x : 600,
y : 300,
width : 428,
height : 320,
url : "resources/audio/dby.mp4",
posterUrl: 'resources/audio/dby.png' },
{
xtype: 'nestedlist',
title: '博客',
iconCls: 'star',
displayField: 'title', store: {
type: 'tree', fields: [
'title', 'link', 'author', 'contentSnippet', 'content',
{name: 'leaf', defaultValue: true}
], root: {
leaf: false
}, proxy: {
type: 'jsonp',
url: 'blog.php',
//url: 'https://ajax.googleapis.com/ajax/services/feed/load?v=1.0&q=http://feeds.feedburner.com/SenchaBlog',
reader: {
type: 'json',
rootProperty: 'responseData.feed.entries'
}
}
},
detailCard: {
xtype: 'panel',
scrollable: true,
styleHtmlContent: true
}, listeners: {
itemtap: function(nestedList, list, index, element, post) {
this.getDetailCard().setHtml(post.get('content'));
}
}
},
{
title: '联系我们',
iconCls: 'user',
xtype: 'formpanel',
url: 'contact.php',
layout: 'vbox', items: [
{
xtype: 'fieldset',
title: '联系我们',
instructions: '(<font color="red">*</font>为必填项)',
height: 285,
items: [
{
xtype: 'textfield',
label: '姓名<font color="red">*</font>',
name: 'name'
},
{
xtype: 'emailfield',
label: 'Email<font color="red">*</font>',
name: 'email'
},
{
xtype: 'textareafield',
label: '内容<font color="red">*</font>',
name: 'message',
height: 90
}
]
},
{
xtype: 'button',
text: '提交',
ui: 'confirm', // The handler is called when the button is tapped
handler: function() { // This looks up the items stack above, getting a reference to the first form it see
var form = this.up('formpanel'); // Sends an AJAX request with the form data to the url specified above (contact.php).
// The success callback is called if we get a non-error response from the server
form.submit({
waitMsg: '正在提交...',
success: function() {
// The callback function is run when the user taps the 'ok' button
Ext.Msg.alert('非常感谢', '您的内容已经提交,我们会尽快联系你。', function() {
form.reset();
});
},
failure: function(form,action){
Ext.Msg.alert('内容提交失败', action.errormsg);
}
});
}
}
]
}
]
}
});

2)修改MyApp\resources\css目录下的 app.css,增加一下内容

.home {
text-align: center;
} .home h1 {
font-weight: bold;
font-size: 1.2em
} .home p {
color: #666;
font-size: 0.8em;
line-height: 1.6em;
margin: 10px 20px 20px 20px
} .home img {
margin-top: -10px
} .home h2 {
color: #999;
font-size: 0.7em
} .blog p {
color: #555;
padding: 20px 20px 0 20px;
font-size: 1em;
line-height: 1.4em
}
.x-tab .x-button-icon.volume:before,.x-button .x-button-icon.volume:before {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
text-align: center;
font-family: "Pictos";
content: "B";
} .x-tab .x-button-icon.video:before,.x-button .x-button-icon.video:before {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
text-align: center;
font-family: "Pictos";
content: "V";
}

3)增加MainView.js中涉及的资源文件

4)添加blog.php

<?php
/**
* Blog feed data
*
*/
/**
* {
responseData: {
feed: {
entries: [
{author: 'Bob', title: 'Great Post', content: 'Really good content...'}
]
}
}
}
*/ /**
* http://localhost/MyApp/blog.php?_dc=1396706826288&node=ext-data-treestore-1-root&page=1&start=0&limit=25&callback=Ext.data.JsonP.callback1
*/
header("Content-type:application/json;charset=utf8;");
$jsonp=$_GET['callback'].'({"responseData":{"feed":{"entries":['; for($i=1;$i<21;$i++){
$author=json_encode('leegtang');
$title=json_encode('今天的博文标题'.$i);
$content=json_encode('博文'.$i.'内容');
$contentSnippet=json_encode('博文'.$i.'内容简介');
$link='blogv.php?id='.$i;
$jsonp.='{"author":'.$author.',"title":'.$title.',"content":'.$content.',"link":"'.$link.'","contentSnippet":'.$contentSnippet.'}';
if($i!=20)$jsonp.=',';
} $jsonp.=']}},"responseStatus": 200});';
echo $jsonp;
?>

5)增加contact.php

<?php

$flag='false';
$msg='';
if($_POST['name'] == ''){
$msg='请填写姓名';
}else if( $_POST['email'] == '' ){
$msg='请填写Email';
}else if($_POST['message'] == ''){
$msg='请填写内容';
}else{
// 保存反馈信息
// ....
$flag='true'; } echo '{"success":'.$flag.',"errormsg":"'.$msg.'"}';
?>

好了,项目完成。  

  

  

 

Sencha Touch Guide的更多相关文章

  1. sencha touch打包成安装程序

    为了更好地向大家演示如何打包一个sencha touch的项目,我们用sencha cmd创建一个演示项目,如果你的sencha cmd环境还没有配置,请参照 sencha touch 入门系列 (二 ...

  2. 跟我一起玩转Sencha Touch 移动 WebApp 开发(一)

    1.目录 移动框架简介,为什么选择Sencha Touch? 环境搭建 创建项目框架,框架文件简介 创建简单Tabpanel案例 自定义图标的方式 WebApp产品测试和发布 HTML5离线缓存 发布 ...

  3. sencha touch

    download http://www.sencha.com/products/touch/thank-you/ Developer Center http://developer.sencha.co ...

  4. sencha touch 2.3 结合cordova 环境搭建

    sencha touch 2.3环境搭建必备工具 sencha touch 2.3 包sencha cmd 4.0以上JAVA JDK 1.7以上(注意JDK和JRE的区别)Ruby 1.9.3或更早 ...

  5. 【翻译】探究Ext JS 5和Sencha Touch的布局系统

    原文:Exploring the Layout System in Ext JS 5 and Sencha Touch 布局系统是Sencha框架中最强大和最有特色的一个部分. 布局要处理应用程序中每 ...

  6. 跟我一起玩转Sencha Touch 移动 WebApp 开发1

    跟我一起玩转Sencha Touch 移动 WebApp 开发(一) 1.目录 移动框架简介,为什么选择Sencha Touch? 环境搭建 创建项目框架,框架文件简介 创建简单Tabpanel案例 ...

  7. Sencha touch API

    Sencha touch  API http://docs.sencha.com/touch/2.3.1/#!/guide/getting_started

  8. 第二步 (仅供参考) sencha touch 使用cmd打包apk

    最新版本的cmd可以直接将sencha touch项目打包成本地应用,不过还有很多不足,本文仅供参考 通过sencha app build native命令可以直接将项目打包成本地应用,不过在命令运行 ...

  9. sencha touch 扩展篇之将sencha touch打包成安装程序(上)- 使用sencha cmd打包安装程序

    由于最近一直忙着android原生的开发,很久没有更新博客了,官方的sencha cmd工具功能非常强大,创建项目,压缩项目,打包安装程序都能轻松实现,这讲我们就给大家介绍下如何使用sencha cm ...

随机推荐

  1. C#基础知识学习手记1

    这篇随笔主要用来记录我在C#学习过程做的笔记,算作是一门课程中的小知识点吧. 1. 变量和表达式                         1.1 如何在输出带有引号(英文双引号.英文单引号)以 ...

  2. C# 算速表达式

              public object ComputeExpression(string expression)         {             var result = new  ...

  3. uuid_short() 源代码

    /* uuid_short handling. The short uuid is defined as a longlong that contains the following bytes: B ...

  4. 在redhat6下配置yum源的使用

           有好多朋友使用linux redhat版本是不是还在为rpm包的安装而烦恼,yum工具的使用无意是解决这一难题的好工具,他可以解决包安装中依赖问题,但是对于redhat版本的系统来说如果 ...

  5. 动作之CCActionInterval(持续动作)家族

    持续动作,顾名思义,就是该动作的执行将持续一段时间.因此持续动作的静态生成函数,往往附带一个时间值Duration. 持续动作类名后缀:一般有两种后缀,一种是To,一种是By.To表示最终达到的目标值 ...

  6. Linux curl命令参数详解--转载

    linux curl是通过url语法在命令行下上传或下载文件的工具软件,它支持http,https,ftp,ftps,telnet等多种协议,常被用来抓取网页和监控Web服务器状态. 一.Linux ...

  7. ant有什么用

    内容摘要: ANT是一个基于Java的自动化脚本引擎,脚本格式为XML.除了做Java编译相关任务外,ANT还可以通过插件实现很多应用的调用. 1)ANT的基本概念: 2)ANT的安装:解包,设置路径 ...

  8. iOS之NSNotificationCenter通知中心使用事项

    其实这里的通知和之前说到的KVO功能很想,也是用于监听操作的,但是和KVO不同的是,KVO只用来监听属性值的变化,这个发送监听的操作是系统控制的,我们控制不了,我们只能控制监听操作,类似于Androi ...

  9. prepare a mysql docker server

    @run server.. docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=mysecretpassword -d mysql @applica ...

  10. 7.Composer的安装和使用

    1.安装Composer: 局部安装 要真正获取 Composer,我们需要做两件事.首先安装 Composer (同样的,这意味着它将下载到你的项目中): curl -sS https://getc ...