不管是编程语言,还是自然语言,真正的学习途径只有一个:熟能生巧。读懂语言的用法和真正理解语言是两个完全不同的概念。熟悉语言的最好方法就是建立许多短小的脚本来测试语言的方方面面。这些脚本不仅有利于学习,而是在将来你某些实现时,可以用作绝妙的参考。
不管是编程语言,还是自然语言,真正的学习途径只有一个:熟能生巧。读懂语言的用法和真正理解语言是两个完全不同的概念。熟悉语言的最好方法就是建立许多短小的脚本来测试语言的方方面面。这些脚本不仅有利于学习,而是在将来你某些实现时,可以用作绝妙的参考。
QQ现在长大成人了,国内的市场越来越小了,该走出去闯闯了!我认为腾讯拥有yahoo,比微软拥有更能发挥yahoo的价值。现在的yahoo正在下坡,也想找个人家。不知道QQ有没有这个能力。
去图书批发市场,本来是准备买那本游戏方面的书来,结果发现那本书也不是那么好,没什么意思。一不小心发现了这本书。是一本工具书,全彩。有时间就看看。呵呵,happy!!!!
主要不分完全用flash作的,功能很简单,效果还不错。朋友们希望功能再多点再强点。所以我又要努力了。可以在校内应用里找到,名字叫涂涂画画(tutuhuahua),是一个简单的涂雅板功能。
网上虽然有不少涂鸦,但是好像关于一些回放过程的代码…..
实现的原理有很多,最简单的就是记录用户的操作,下面我的这个画线回放,就是记录用户鼠标移动过程。
存放进一个数组里,用”,”和”;”来区分是moveto还是lineto。这样就可以实现简单的回放了
当然,如果要实现复杂的,例如填充色等等,就需要更多的记录了…在这里只做个开始,呵呵
(可以继续添加许多功能的,例如画笔的不同等等)
/** * @(#)DrawBoard.as * * @author soda.C E-mail:sujun10@21cn.com * @version 1.0 * <br>Copyright (C), 2007 soda.C * <br>This program is protected by copyright laws. * <br>Program Name:Soda.C.Draw * <br>Date:2008-3-18 */ package org.sujun.drawboard { import flash.display.Sprite; import fl.controls.Button; import flash.events.MouseEvent; import flash.events.Event; public class DrawBoard extends Sprite { private var playBtn :Button; //回放按钮 private var drawSprite :Sprite; //画板mc private var count :int; //回放的进度 private var pointAry :Array; //存放用户操作数据 public function DrawBoard() { playBtn = new Button(); playBtn.label = "回放"; this.addChild(playBtn); playBtn.addEventListener(MouseEvent.MOUSE_DOWN, playDraw); stage.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownEvent); stage.addEventListener(MouseEvent.MOUSE_UP, mouseupEvent); drawSprite = new Sprite(); this.addChild(drawSprite); //画线风格 drawSprite.graphics.lineStyle(1,0x000000); pointAry = new Array(); count = 0; } //回放事件 private function playDraw(event:MouseEvent):void { event.stopPropagation(); //准备重画 drawSprite.graphics.clear(); drawSprite.graphics.lineStyle(1,0x000000); stage.addEventListener(Event.ENTER_FRAME, onEnterFrames); } private function mouseDownEvent(event:MouseEvent):void { stage.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveEvent); drawSprite.graphics.moveTo(this.mouseX, this.mouseY); pointAry.push(this.mouseX + "," + this.mouseY); } private function mouseupEvent(event:MouseEvent):void { stage.removeEventListener(MouseEvent.MOUSE_MOVE, mouseMoveEvent); } private function mouseMoveEvent(event:MouseEvent):void { drawSprite.graphics.lineTo(this.mouseX, this.mouseY); pointAry.push(this.mouseX + ";" + this.mouseY); } private function onEnterFrames(event:Event):void { if(count < pointAry.length) { var str:String = pointAry[count]; //如果是moveto记号 if(str.indexOf(",") != -1) { var ary:Array = str.split(","); drawSprite.graphics.moveTo(ary[0], ary[1]); } else { var ary2:Array = str.split(";"); drawSprite.graphics.lineTo(ary2[0], ary2[1]); } count++; } else { //结束后删除事件 stage.removeEventListener(Event.ENTER_FRAME, onEnterFrames); } } } }