当前位置:  编程技术>移动开发
本页文章导读:
    ▪lua进阶4-lua闭包        lua进阶4--lua闭包闭包概念在C++,.Net这些语言到是用的少,而在脚本语言比如javascript、perl、lua比较常见 下面我就讲一下lua脚本语言下的闭包,最好动动手才能有更深的印象 如下是lua语句 --闭.........
    ▪ HTML5 搬动开发框架        HTML5 移动开发框架 在过去的两年里,触屏设备飞速增长。iOS和Android设备让开发者和设计师开始重新思考他们的网页应用,以提供更好的触屏体验。 移动Web应用相对于本地的App有很多优势,.........
    ▪ 在自定义的SurfaceView中作图内容       在自定义的SurfaceView中绘制内容 View和SurfaceView都可以用于绘制图形,但各有各的适用场合。一般情况,主动更新,不考虑UI线程的限制,双缓存加速等情况下会优先考虑SurfaceView。 下面把上.........

[1]lua进阶4-lua闭包
    来源: 互联网  发布时间: 2014-02-18
lua进阶4--lua闭包

闭包概念在C++,.Net这些语言到是用的少,而在脚本语言比如javascript、perl、lua比较常见

下面我就讲一下lua脚本语言下的闭包,最好动动手才能有更深的印象

如下是lua语句

--闭包
function f1()
   i=0
  local function f2()
     i=i+1
      return i
  end
  i=i+1
  return f2
end
function t1()
  i=0
  i=i+1
  return i
end

g1 = f1()
print(g1())
print(g1())
print(t1())
print(t1())

 输出结果如下


function f1()
   i=0
  local function f2()
     i=i+1
      return i
  end
  i=i+1
  return f2
end 

函数的闭包实际上是一个函数嵌套在另一个函数中,当然还不止只这些,可以看到

g1 = f1()
print(g1())
print(g1())

输出的是2,3

这也就是闭包的一个特性,局部变量存在于堆栈之中,并不被释放掉

所以我觉得掌握这两点,初步应用闭包应该没什么问题。本人也是刚学lua的菜鸟,也只是借鉴别人的,再靠自己慢慢领悟。不好的地方请多指教

http://blog.csdn.net/ym012/article/details/7208750  这篇文章讲得很不错 大家可以参考

 

 

 

 


    
[2] HTML5 搬动开发框架
    来源: 互联网  发布时间: 2014-02-18
HTML5 移动开发框架

在过去的两年里,触屏设备飞速增长。iOS和Android设备让开发者和设计师开始重新思考他们的网页应用,以提供更好的触屏体验。


移动Web应用相对于本地的App有很多优势,虽然也有很多设计和开发上的挑战。这里列出了一系列有用的框架来帮助基于HTML的webapp开发。他们支持大部分流行的智能手机和平板。

1. Lungo.js:HTML5 移动开发框架

Lungo.js 是第一个应用HTML5和CSS3特性的移动开发框架。它可以帮助开发者创建iOS,Android,Blackberry和WebOS平台的应用。

Lungo.js 不需要任何web服务器的支持就能帮助用户实现HTML5的功能,例如WebSQL, Geolocation,History,Device orientation等等。

2. JO:一个简单的HTML5 App框架


JO可以帮助你创建类似本地应用的Web App。JO是一个开源的免费框架,可以和PhoneGap一起使用。

3. Joshfire:跨设备的开发框架


Joshfire是一个开源的跨设备开发框架,帮助开发者创建可以在多种设备上运行的web app。它使用HTML5和JavaScript,并且允许开发者快速整合本地应用和特定的web应用。

Joshfire可以让你的应用接受键盘,鼠标,触摸屏,遥控器等设备的输入。Joshfire支持Node.JS。

4. Sencha Touch:基于HTML5的移动网页开发框架


Sencha touch可以让开发者创建类似本地应用体验的web app。Shencha是第一个使用HTML5,CSS和JavaScript并且支持音频/视频,本地存储,圆角,渐变背景以及阴影的开发框架。

5. Baker:HTML5 电子书框架


Baker是用来在iPad或者iPhone平台上发布交互式的电子书或者电子杂志的HTML5电子书框架。.

6. Touchy Boilerplate


Touchy Boilerplate 是一个用来创建移动web app,包括HTML模板,Meta tag等的工具。Touchy可以支持动态页面导航,固定页头,滚动内容,浏览历史记录等功能。Touchy使用jQuery或者 Zepto.JS。

7. Ripple:让移动开发测试更容易


在不同的平台上测试移动应用是一件令人头疼的事情。Ripple可以帮助你在不同的平台商测试并且调试你的HTML5移动应用。Ripple是一个chrome的扩展。它可以模拟每个设备的详细信息,例如user_Agent,Geolocation等等。

8. RestKit


Restkit是一个objective-c的开发框架,目的是简化并加快与Restful的web service交互。它提供了一个简洁的HTTP request/response API和一个强大的对象映射系统。

9. HTML5 兼容性表格


Mobile HTML5是一个表格,显示了不同设备/平台对HTML5特性的支持情况。包括Safari, Android, Blackberry, IE,Opera,Firefox,webOS和Symbian。

10. MobileESP:检测你的移动网页访问者


MobileESP项目提供了一套简单、轻量级的API让网站的开发者检测访客是不是使用移动设备,或者使用的是哪种移动设备。

11. Tiggr


Tiggr是一个移动一个用创建工具,可以让你快速创建移动应用。你不需要写代码就能创建丰富的移动应用。

 

英文原文链接

 


    
[3] 在自定义的SurfaceView中作图内容
    来源: 互联网  发布时间: 2014-02-18
在自定义的SurfaceView中绘制内容

View和SurfaceView都可以用于绘制图形,但各有各的适用场合。一般情况,主动更新,不考虑UI线程的限制,双缓存加速等情况下会优先考虑SurfaceView。

下面把上篇中的MyView通过继承SurfaceView来重新编写,具体如下:

 

public class MyView extends SurfaceView implements Callback, Runnable {

	private Paint mPaint;
	private SurfaceHolder mSurfaceHolder;
	private Thread mThread;
	
	private void initial() {
		
		mPaint = new Paint();  
		mPaint.setAntiAlias(true);
        this.setKeepScreenOn(true);
        mPaint.setColor(Color.RED);  
        
        mThread = new Thread(this);
        
        mSurfaceHolder = getHolder();
        mSurfaceHolder.addCallback(this);
        
	}
	
	public MyView(Context context) {
		super(context);
		initial();
	}
	
	public MyView(Context context, AttributeSet attrs) {
		super(context, attrs);
		initial();
	}
	
	private void draw() {
		
		Canvas mCanvas = null;
		try {
			mCanvas = mSurfaceHolder.lockCanvas();
			mCanvas.drawColor(Color.WHITE);
			mCanvas.drawText("绘制文字", 10, 20, mPaint);
			mCanvas.drawCircle(35, 50, 20, mPaint);
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			if (mCanvas != null) {
				mSurfaceHolder.unlockCanvasAndPost(mCanvas);
			}
		}
		
	}

	@Override
	public void surfaceChanged(SurfaceHolder holder, int format, int width,
			int height) {
		
	}

	@Override
	public void surfaceCreated(SurfaceHolder holder) {
		mThread.start();
	}

	@Override
	public void surfaceDestroyed(SurfaceHolder holder) {
		
	}

	@Override
	public void run() {
		draw();
	}

}

 说明:

 

  • 获取SurfaceHolder:mSurfaceHolder = getHolder();
  • 为SurfaceHolder添加CallBack:mSurfaceHolder.addCallback(this);
  • 创建绘制线程:mThread = new Thread(this);
  • 绘制函数:draw();自定义的函数名称,如果你喜欢,你可以在遵守规则的前提下随意命名;
  • 当SurfaceView被创建时,启动绘制线程:mThread.start();
  • 从SurfaceHolder获得Canvas对象:mCanvas = mSurfaceHolder.lockCanvas();
  • 调用方式和以前一样,这也仅仅是一个View,只不过是继承SurfaceView而已!

    效果如图:



    希望对你有所帮助!:)

     


        
    最新技术文章:
    ▪Android开发之登录验证实例教程
    ▪Android开发之注册登录方法示例
    ▪Android获取手机SIM卡运营商信息的方法
    ▪Android实现将已发送的短信写入短信数据库的...
    ▪Android发送短信功能代码
    ▪Android根据电话号码获得联系人头像实例代码
    ▪Android中GPS定位的用法实例
    ▪Android实现退出时关闭所有Activity的方法
    ▪Android实现文件的分割和组装
    ▪Android录音应用实例教程
    ▪Android双击返回键退出程序的实现方法
    ▪Android实现侦听电池状态显示、电量及充电动...
    ▪Android获取当前已连接的wifi信号强度的方法
    ▪Android实现动态显示或隐藏密码输入框的内容
    ▪根据USER-AGENT判断手机类型并跳转到相应的app...
    ▪Android Touch事件分发过程详解
    ▪Android中实现为TextView添加多个可点击的文本
    ▪Android程序设计之AIDL实例详解
    ▪Android显式启动与隐式启动Activity的区别介绍
    ▪Android按钮单击事件的四种常用写法总结
    ▪Android消息处理机制Looper和Handler详解
    ▪Android实现Back功能代码片段总结
    ▪Android实用的代码片段 常用代码总结
    ▪Android实现弹出键盘的方法
    ▪Android中通过view方式获取当前Activity的屏幕截...
    ▪Android提高之自定义Menu(TabMenu)实现方法
    ▪Android提高之多方向抽屉实现方法
    ▪Android提高之MediaPlayer播放网络音频的实现方法...
    ▪Android提高之MediaPlayer播放网络视频的实现方法...
    ▪Android提高之手游转电视游戏的模拟操控
     


    站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3