前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >HTML5画图板PhoneGap移植

HTML5画图板PhoneGap移植

作者头像
MJ.Zhou
发布2022-05-07 16:31:19
9080
发布2022-05-07 16:31:19
举报
文章被收录于专栏:.NET开发那点事

这次来看一下怎么把上次的HTML5画图板使用PhoneGap移植到Andriod上去。经过上一篇的PhoneGap环境的搭建,很轻松的就把一个HTML5的web应用移植到了Andriod上去,可以看出PhoneGap的强大。

1.添加自定义的JavaScript文件index.js

在www文件夹下添加js文件夹,在js文件夹下添加index.js

这里我重构了上一次的画板的JavaScript文件,不过代码的关键点是全部一样的。我只不过是按照面向对象的方式重构了一下代码。正好学习JavaScript怎么实现一个类,怎么调用方法等,挺有意思的。

代码语言:javascript
复制
function App()
{
    var _this=this;
    _this.initialize=function()
    {
        //注册设备初始化完成事件
        document.addEventListener("deviceready", onDeviceReady, false);
    }
    var onDeviceReady=function()
    {
        var can = new Can();
        can.bindEvents();//绑定事件
    }
}

function Can ()
{

var _this=this;
var lastX;//最后一次触摸的x坐标
var lastY;//最后一次触摸的y坐标
var canvas = document.getElementById("canvas");
var context =canvas.getContext("2d");

var init=function()
{
    lastX=0;
    lastY=0;
    
    //全屏canvas
    canvas.width=window.screen.width;
    canvas.height=window.screen.height;

    context.lineWidth=10;//画笔粗细
    context.strokeStyle="#FF0000";//画笔颜色
};

//绑定事件
_this.bindEvents = function() 
{
        try
        {
            //注册监听
            canvas.addEventListener('touchstart', onTouchStart, false);
            canvas.addEventListener('touchmove', onTouchMove, false);
         }
        catch(err)
        {
            alert(err.message);
        }
};

//触摸开始
var onTouchStart=function()
{      
    try
    {
       event.preventDefault();

        lastX=event.touches[0].clientX;
        lastY=event.touches[0].clientY;
        //画点
        drawRound(lastX,lastY);
    }
    catch(err)
    {
        alert(err.message);
    }

};

//触摸移动
var onTouchMove=function()
{
        try
        {
          event.preventDefault();
        //画线
          drawLine(lastX,lastY,event.touches[0].clientX,event.touches[0].clientY);
          lastX=event.touches[0].clientX;
          lastY=event.touches[0].clientY;
        
        }
        catch(err)
        {
            alert( err.message);
        }
};

//画圆
var drawRound = function (x,y)
{
    try
    {
        context.fillStyle="#FF0000";
        context.beginPath();
        context.arc(x,y,5,0,Math.PI*2,true);
        context.closePath();
        context.fill();
    }
    catch(err)
    {
        alert(err.message);
    }
   
};
//画线
var drawLine = function (startX,startY,endX,endY)
{
    try
    {

        context.beginPath();
        context.lineCap="round";
        context.moveTo(startX,startY);
        context.lineTo(endX,endY);
        context.stroke();
    }
    catch(err)
    {
        alert(err.message);
    }
   
};

init();

} ;

2.修改index.html

这个html代码跟上次的web应用完全一样。只添加了对App类的初始化代码。

代码语言:javascript
复制
<!doctype html>
<html>
<head>
     <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" />
    <title>HTML5Paint</title>
    <script src="http://debug.phonegap.com/target/target-script-min.js#6CFB7EA06AB04AFBB33FD97AE40691C5"></script>
    <script type="text/javascript" src="cordova-2.6.0.js" charset="utf-8"></script>
    <script type="text/javascript" src="js/index.js" charset="utf-8"></script>
    <script type="text/javascript">
        try
        {
            var app=new App();
             app.initialize();//初始化
        }
        catch(err)
        {
            alert(err.message);
        }
        
    </script>
</head>
<body>
    <canvas id="canvas" ></canvas>

</body>
</html>

3.在Andriod上的效果

这次移植过程可以看到是相当的轻松,几乎是原封不动的就把一个web用移植到了Andriod上去。所花费的成本真的很小很小,phoneGap真的是个很有前途的东西。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2013-05-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档