建站学 - 轻松建站从此开始!

建站学-个人建站指南,网页制作,网站设计,网站制作教程

当前位置: 建站学 > 图像设计 > Flash教程 >

Flash高级技巧:flash手写输入(3)

时间:2010-08-05 23:22来源: 作者: 点击:
再看看竖的效果 wd=15a14a15a17a16a19a16a22a16a25a16a28a17a30a17a33a17a36a17a39a17a42a19a45a 18a48a18a51a19a53a20a55a20a57继续套用(x,y) -(15,14);(15,17);(16,19);(16,22)... 发现这个规律大致也成立,之余

再看看竖的效果

wd=15a14a15a17a16a19a16a22a16a25a16a28a17a30a17a33a17a36a17a39a17a42a19a45a

18a48a18a51a19a53a20a55a20a57继续套用(x,y)   ->(15,14);(15,17);(16,19);(16,22)...

发现这个规律大致也成立,之余那个16和15的差别,大家可以看看我的线条,不是笔直的,所以可以将它们近似认为是直线吧,我们只是根据特殊情况来找规律,间隔也近似看作3

从上面两种情况我们可以理解为wd就是我们操作后的坐标数据,每个数据都是用a来隔开,为什么用a?我想是除了数值一外,a是比较通用的符号,毕竟在字母序列表里排第一 间隔为3,又是为什么?因为大家都知道两点构成一线,如果再多一个点,就可以判断出这3个点构成的线的走势是直线还是折线,也就是我们所理解的笔画了,这个是极限情况下特殊情况,你也可以理解在flash操作里,mouseDown mouseMove mouseUp

这3个情况下的,所输出的极限数据,即最少的数据。

数据分析完毕了,剩下的工作就是我们在flash中去构建我们的逻辑,去实现了
因为时间比较晚了。。写教程真的耗时间

所以我就先放源文件和效果,因为代码比较简单,也没有去优化了

代码是为了凑成合格的数据而弄的,所以有点点乱,因为时间关系。。没有去细化,有问题明天再继续

代码

var pointTotalArr :Array   = [];
var pointArr      :Array;
var sp       :Sprite       = new Sprite();
var lineSp:Sprite;
addChild(sp);
function onLoaded(event:Event):void {
    var str:String = event.target.data;
    var tempStr:String = str.slice(6,str.length-8);
    var arr:Array  = tempStr.split("\\u");
    txt.text         ="";
    for (var i:uint = 1; i<arr.length; i++) {
        //trace(String.fromCharCode(Number("0x"+arr[i])));
        txt.appendText(String.fromCharCode(Number("0x"+arr[i]))+" ")
    }
}
writeHotArea.addEventListener(MouseEvent.MOUSE_DOWN,onStageMouseDown);
function onStageMouseDown(event:MouseEvent):void {
    lineSp = new Sprite();
    lineSp.graphics.clear();
    lineSp.graphics.lineStyle(2);
    lineSp.graphics.moveTo(mouseX,mouseY);
    writeHotArea.addEventListener(MouseEvent.MOUSE_MOVE,onStageMouseMove);
    pointArr = [];
    pointArr.push(new Point(mouseX,mouseY));
    pointTotalArr.push(pointArr);
    sp.addChild(lineSp);
    stage.addEventListener(MouseEvent.MOUSE_UP,onStageMouseUP);
}
function onStageMouseUP(event:MouseEvent):void {
    writeHotArea.removeEventListener(MouseEvent.MOUSE_MOVE,onStageMouseMove);
    stage.removeEventListener(MouseEvent.MOUSE_UP,onStageMouseUP);
    var sendStr:String = "";
    for (var j:uint = 0; j<pointTotalArr.length; j++) {
        if (j!=0) {
            sendStr+="a";
        }
        for (var i:uint = 0; i<pointTotalArr[j].length; i+=3) {
            sendStr+=pointTotalArr[j][i].x +"a"+pointTotalArr[j][i].y;
            if(i<(pointTotalArr[j].length-3))sendStr+="a"
        }
    }
    var urlLoader:URLLoader    = new URLLoader();
    urlLoader.dataFormat       = URLLoaderDataFormat.TEXT;
    var request:URLRequest     = new URLRequest("http://hw.baidu.com/");
    request.method             = "post";
    var urlLV    :URLVariables = new URLVariables();
    urlLV.wd                   = sendStr;
    urlLV.type                 = 1;
    request.data = urlLV;
    urlLoader.load(request);
    urlLoader.addEventListener(Event.COMPLETE,onLoaded);
}
function onStageMouseMove(event:MouseEvent):void {
    lineSp.graphics.lineTo(mouseX,mouseY);
    pointArr.push(new Point(mouseX,mouseY));
    event.updateAfterEvent();
}
reWriteBtn.addEventListener(MouseEvent.CLICK,onClick);
function onClick(event:MouseEvent):void{
    pointTotalArr = [];
    txt.text         ="";
    while(sp.numChildren>0) sp.removeChildAt(0);
}

(责任编辑:admin)
织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片