APP下载

基于Flash ActionScript 的汉字书写软件的设计与实现

2015-12-10刘悦

电脑知识与技术 2015年26期
关键词:田字格倒计时按钮

刘悦

摘要:在计算机普及的今天,越来越多的年轻人习惯使用计算机键盘来书写文字,“提笔忘字”的现象越来越多,中国汉字的发展逐渐向“沙漠化”、粗糙化的趋势发展。央视举办的《中国汉字听写大会》经播出后获得了广泛的好评,在全国各地掀起了关于中国汉字的学习热潮,笔者结合工作实际采用Flash软件及ActionScript语言设计了一款汉字书写软件。

关键词:Flash;ActionScript;汉字书写

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2015)26-0080-03

Design and Realization of Chinese character writing software Based on Flash ActionScript

LIU Yue

(Tianjin Technical School of Printing and Decorating, Tianjin 300111, China)

Abstract: Today with widespread using of computers, more and more young people accustomed to using the keyboard to write Chinese characters, "pick up a pen forget the word" phenomenon more and more happens, there is a growing development of Chinese characters "desertification", roughening trend. CCTV's "Chinese Character Spelling Congress" once broadcast received wide acclaim in the country set off a culture of learning Chinese characters on the boom, the author combines practical work using Flash software and ActionScript language has designed a Chinese character writing software.

Key words: Flash; ActionScript; Chinese character writing

1 概述

在计算机普及的今天,越来越多的年轻人习惯使用计算机键盘来书写文字,“提笔忘字”的现象越来越多,中国汉字的发展逐渐向“沙漠化”、粗糙化的趋势发展。央视举办的《中国汉字听写大会》经播出后获得了广泛的好评,在全国各地掀起了关于中国汉字的学习热潮。

举办此类比赛首先要解决比赛软件的问题。很多学校大都使用iPad作为比赛工具,通过投影仪把书写内容显示到大屏幕上,这样做比较简单方便,但是也存在一些问题,如没有计时功能,时间上还需要人工控制;修改功能单一,修改时间较长,影响答题者的书写速度;界面比较单板,缺乏美观性等。针对上述情况,笔者结合工作实际采用Flash软件及ActionScript语言设计了一款汉字书写软件。

Flash动画制作软件具有交互性强、图像质量高、兼容性好、容量小等优点,被业界普遍接受。ActionScript(简称AS)语言采用面向对象的程序设计思想,是以场景中的按钮、关键帧及影片剪辑等组件作为对象,使用AS语言进行编写和定义。在Flash中运用AS脚本语言,不但能根据用户的要求动态地控制动画的各种行为,还可以让其作出反应从而实现动画的交互功能。

2 汉字书写软件介绍

2.1 功能描述

使用者可以在“田字格”内进行随意书写,也可以根据需要进行涂改、撤销或恢复操作,还可全部清除格内的所有内容,书写完毕可以点击进行提交,软件设有倒计时功能,超过一定时间,停止书写功能,自动提交答案。软件功能结构如图1所示。

图1 软件功能示意图

2.2 界面设计

图2 软件界面

在软件的界面设计方面本着美观大方、简单易用的原则,基本参照了央视汉字听写大会软件界面的布局,并加以适当改动。软件界面如图2所示。

3 实现方法

3.1 界面制作

软件背景采用Photoshop合成制作,为了使书写界面更加清晰美观,田字格部分采用不易失真的矢量图软件Illustrator制作。制作过程如图3、图4所示。

图3 底图制作

图4 田字格制作

3.2 场景及库元件说明

所采用的Flash制作软件版本为CS5.5,在设计实现阶段,根据功能划分将各元素分布在不同图层中,该软件整个场景共分为三个图层,每层一帧,包括按钮层、进度条层、背景层,如图5所示。按钮层包括部分功能按钮如:提交按钮、提交后的确定、取消按钮,其他按钮如书写、修改等按钮,在场景所在的Main.as类文件中调用。进度条层主要放置比赛倒计时元件。

部分库元件功能如下:

影片剪辑ToolPanel中内置了书写、橡皮、撤销、清除工具按钮。软件初始默认工具为书写,此时可以在田字格内进行书写;点击“橡皮”按钮可对所写内容进行修改;点击“撤销”按钮可以取消前面若干步书写操作,单击一次取消一笔;点击“清除”按钮可以清除田字格内所有内容。

影片剪辑sure_cancel放置了提交按钮,以及提交后的确定和取消按钮。点击提交按钮,显示确定和取消按钮,单击“确定”提交答案,单击“取消”继续答题,同时确定和取消按钮隐藏。

影片剪辑countdown里设计了一个倒计时条,用于显示剩余答题时间。倒计时条随着时间进行逐渐向左缩短,在剩余10秒时会有倒计时声音提示,时间到时会有结束钟声响起,同时在计时条上方显示“时间到”,提示答题结束。

图5 软件flash制作场景

3.3 脚本设计及实现

该软件的编程部分采用ActionScript3.0编写,分别定义了几个包,如图6所示。Main为主类, ToolPanel类和Canvas类内置于主类,ToolPanel用来设置并显示工具箱,Canvas用来实现书写。Canvas具有graphID属性,用来确定当前绘制的是什么图形,比如说id为0时,画线条,id为1时,为橡皮工具,这些id都被定义成了ToolPanel的静态属性,方便访问;graph包里放了各种可以绘制的图形。

图6 软件文件组成

因篇幅所限,只列举部分代码,具体如下:

1)书写感应区

相当于一个绘图板,其设置放在Canvas.as文件中,部分代码如下:

public function Canvas(w:Number, h:Number, stage:Stage)

{

this.w = w;

this.h = h;

//绘制背景

this.graphics.lineStyle(0, 0xffffff);

this.graphics.drawRoundRect(0, 0, w, h, 8, 8);

this.addEventListener(MouseEvent.MOUSE_DOWN, startDraw);

stage.addEventListener(MouseEvent.MOUSE_UP, stopDraw);

allCanvas = new Sprite();

addChild(allCanvas);

//初始化backCanvas

backCanvas = new Sprite();

backCanvasBitmapData = new BitmapData(w, h, true, 0);

backCanvasBitmap = new Bitmap(backCanvasBitmapData);

backCanvas.addChild(backCanvasBitmap);

allCanvas.addChild(backCanvas);

//设置遮罩,将画在画布外的东西隐藏起来

var maskSprite:Shape = new Shape();

maskSprite.graphics.beginFill(0);

maskSprite.graphics.drawRoundRect(1, 1, w-4, h-4, 8, 8);

maskSprite.graphics.endFill();

allCanvas.addChild(maskSprite);

canvas = new Sprite();

allCanvas.addChild(canvas);

canvas.mask = maskSprite; }

2)提交按钮的实现

sureBtn.visible = false;

cancelBtn.visible = false;

submitBtn.addEventListener(MouseEvent.CLICK,fl_MouseClickHandler_2);

function fl_MouseClickHandler_2(event:MouseEvent):void

{

sureBtn.visible = true;

cancelBtn.visible = true;

}

cancelBtn.addEventListener(MouseEvent.CLICK, fl_ClickToHide);

function fl_ClickToHide(event:MouseEvent):void

{

sureBtn.visible = false;

cancelBtn.visible = false;

}

3)书写笔画的设计

笔画线宽的代码编写在graph文件夹中的Line.as文件中,具体如下:

public class Line extends GraphBase

{ public function Line(c:uint = 0)

{ super(c); }

override public function begin(xx:Number, yy:Number):void

{ this.graphics.lineStyle(10, color);

this.graphics.moveTo(xx, yy); }

override public function draw(xx:Number, yy:Number):void

{ this.graphics.lineTo(xx, yy); }

}

4 测试发布

考虑到没有安装Flash Player插件的电脑不能执行.swf文件,利用Flash的导出功能生成一个可执行的.exe文件,能运行于所有的Window平台,无需安装,直接运行。该软件可配合投影仪、手写板等硬件设备,利用现有资源,以最少投入搭建经济实用比赛系统。

5 结束语

在美国有从1925年延续至今的英语全国拼字比赛《National Spelling Bee》,成为全民关注的带有国家精神、民族性质的活动。我们汉字几千年的文化积淀极其深厚的文化底蕴,使中华民族成为世界上最具智慧的民族,它是我们传统文化的一种独特象征。作为中国人,我们更应该把汉字的美传承下去,通过书写把文明传递,实现民族的未雨绸缪。

参考文献:

[1] 朱治国,缪亮,陈艳丽.Flash ActionScript 3.0 编程技术教程[M].北京:清华大学出版社,2008:120-130.

[2] 胡孔法.精通Flash MX 2004动画与Actionscript编程[M].北京:清华大学出版社,2004:80-89.

[3] 陈纪霞.基于Flash 的绘图板的设计与实现[J].重庆科技学院学报,2013(6):137-139.

猜你喜欢

田字格倒计时按钮
当你面前有个按钮
“田字格”器材的制作和运用
住在“田”间(二)
合理使用田字格在低年级写字教学中实践探究
死循环
内心不能碰的按钮
添笔画等