|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
使用Flash创作的各个内容单元称为应用程序,即使它们可能只是很简单的动画。您也可以通过添加图片、声音、视频和特殊效果,构建包含丰富媒体的Flash应用程序。
poluoluo中心提醒:Flash初级技能教程:flash手写输出.
之前见有一些网友提到过此类成绩,也有人会商过了,大抵道理就是坐标数据,然后依据点坐标往判别笔划,然后天生字符。比来无聊就实验往尝尝,由于手写输出,难点就是依据数据天生笔划这,惋惜我是前真个,背景数据不是太懂得,以是就盘算研讨下如今网站上对照通用的flash手写输出。[人人不要问我,为何不拿flash来做数据天生笔划,假如是让flash来做这个,光从效力上笔划拆解笔划匹对字体选择就决意了,特别是第三点flash是不合适的]。
好了,言回正传,如今我就拿对照罕见的http://hw.baidu.com/这个地点的手写输出来做顾问了
由于人人对照罕见,以是我也不合错误这个多做先容
p.s人人能够瞥见汉王年夜年夜的Logo,对这个我对照有情感,之前做动画的时分,仍是先生时期,买不起影拓,以是攒钱买了汉王的画图板
由于我之前就剖析了,flash是做体现层的,底层的一定不是由flash来弄的,以是必定了它是无数据读写的,以是在猎奇之心的驱动下,我开启了我扫瞄器中的HttpWatch,然后就试着任意写写,发明了swf真的post了数据给一个地点http://hw.baidu.com/,人人能够翻开这个链接看看,网页里就是{"s":"","t":3}这几个内容,貌似和我们的手写数据没有任何干联,实在不是如许的,由于我们独自翻开是没有传进任何参数出来的,以是给人错觉了
以是如今我们依据httpWatch来剖析下
人人注重白色圈内的内容,很明显无数据post到了之前谁人地点,post的值为type=1,wd=一长串字符
poluoluo中心提醒:Flash初级技能教程:flash手写输出.
猎奇之下,接着写点器材,了局以下图
都一样,只是wd的内容更多了,前后两次对照后,发明此次的内容是前次内容的递减,这就申明了,这些数据,就是和我们输出笔划有联系关系的。
那这些究竟和输出内容有何干系呢?
我们接着剖析数据,由于是和笔划有干系的,而我之前是任意乱写的,欠好剖析数据,以是此次我们实验有纪律的写写,很复杂,反正就是我们所要做的
横的效果
发明wd=5a6a8a6a11a6a14a6a17a6a20a6a23a6a24a6貌似有点纪律,很明显依据坐标(x,y)来剖析下(5,6);(8,6);(11,6);(14,6)......前面顺次类推了
发明这个纪律和我们的一横的笔划很贴切,Y值稳定,X值递减,并且递减的也很有纪律距离为3
为了考证我们的纪律
poluoluo中心提醒:Flash初级技能教程:flash手写输出.
再看看竖的效果
wd=15a14a15a17a16a19a16a22a16a25a16a28a17a30a17a33a17a36a17a39a17a42a19a45a
18a48a18a51a19a53a20a55a20a57持续套用(x,y)->(15,14);(15,17);(16,19);(16,22)...
发明这个纪律大抵同样成立,之余谁人16和15的不同,人人能够看看我的线条,不是笔挺的,以是能够将它们近似以为是直线吧,我们只是依据特别情形来找纪律,距离也近似看做3
从下面两种情形我们能够了解为wd就是我们操纵后的坐标数据,每一个数据都是用a来离隔,为何用a?我想是除数值一外,a是对照通用的标记,究竟在字母序列内外排第一距离为3,又是为何?由于人人都晓得两点组成一线,假如再多一个点,就能够判别出这3个点组成的线的走势是直线仍是折线,也就是我们所了解的笔划了,这个是极限情形下特别情形,你也能够了解在flash操纵里,mouseDownmouseMovemouseUp
这3个情形下的,所输入的极限数据,即起码的数据。
数据剖析终了了,剩下的事情就是我们在flash中往构建我们的逻辑,往完成了
由于工夫对照晚了。。写教程真的耗工夫
以是我就先放源文件和效果,由于代码对照复杂,也没有往优化了
代码是为了凑成及格的数据而弄的,以是有点点乱,由于工夫干系。。没有往细化,有成绩今天再持续
代码:
varpointTotalArr:Array=[];
varpointArr:Array;
varsp:Sprite=newSprite();
varlineSp:Sprite;
addChild(sp);
functiononLoaded(event:Event):void{
varstr:String=event.target.data;
vartempStr:String=str.slice(6,str.length-8);
vararr:Array=tempStr.split("u");
txt.text="";
for(vari:uint=1;i<arr.length;i++){
//trace(String.fromCharCode(Number("0x"+arr)));
txt.appendText(String.fromCharCode(Number("0x"+arr))+"")
}
}
writeHotArea.addEventListener(MouseEvent.MOUSE_DOWN,onStageMouseDown);
functiononStageMouseDown(event:MouseEvent):void{
lineSp=newSprite();
lineSp.graphics.clear();
lineSp.graphics.lineStyle(2);
lineSp.graphics.moveTo(mouseX,mouseY);
writeHotArea.addEventListener(MouseEvent.MOUSE_MOVE,onStageMouseMove);
pointArr=[];
pointArr.push(newPoint(mouseX,mouseY));
pointTotalArr.push(pointArr);
sp.addChild(lineSp);
stage.addEventListener(MouseEvent.MOUSE_UP,onStageMouseUP);
}
functiononStageMouseUP(event:MouseEvent):void{
writeHotArea.removeEventListener(MouseEvent.MOUSE_MOVE,onStageMouseMove);
stage.removeEventListener(MouseEvent.MOUSE_UP,onStageMouseUP);
varsendStr:String="";
for(varj:uint=0;j<pointTotalArr.length;j++){
if(j!=0){
sendStr+="a";
}
for(vari:uint=0;i<pointTotalArr[j].length;i+=3){
sendStr+=pointTotalArr[j].x+"a"+pointTotalArr[j].y;
if(i<(pointTotalArr[j].length-3))sendStr+="a"
}
}
varurlLoader:URLLoader=newURLLoader();
urlLoader.dataFormat=URLLoaderDataFormat.TEXT;
varrequest:URLRequest=newURLRequest("http://hw.baidu.com/");
request.method="post";
varurlLV:URLVariables=newURLVariables();
urlLV.wd=sendStr;
urlLV.type=1;
request.data=urlLV;
urlLoader.load(request);
urlLoader.addEventListener(Event.COMPLETE,onLoaded);
}
functiononStageMouseMove(event:MouseEvent):void{
lineSp.graphics.lineTo(mouseX,mouseY);
pointArr.push(newPoint(mouseX,mouseY));
event.updateAfterEvent();
}
reWriteBtn.addEventListener(MouseEvent.CLICK,onClick);
functiononClick(event:MouseEvent):void{
pointTotalArr=[];
txt.text="";
while(sp.numChildren>0)sp.removeChildAt(0);
}
Flash是一个非常优秀的矢量动画制作软件,它以流式控制技术和矢量技术为核心,制作的动画具有短小精悍的特点,所以被广泛应用于网页动画的设计中,以成为当前网页动画设计最为流行的软件之一。 |
|