目前的任务是完成景区创建的Flash应用。开发工具是基于Flex Builder.开发语言是AS3. 本来是想使用Flash CS5作为开发的,但是由于和Flex Builder的开发流程是有些不同,所以还是使用原来使用的工具进行开发好了。

今天主要任务是:

  • 熟悉了自定义控件的使用方法
  • 基于Graphics的自绘制
  • 熟悉了Windows Live Writer的用法(本文就是使用Live Writer撰写,可惜失败了。只得从页面重新输入)

为了测试一下代码着色插件的用法,贴一段AS的代码上来:

 

1 <?xml version="1.0" encoding="utf-8"?>
2  <mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="init()">
3 <mx:Script>
4 <![CDATA[
5 import mx.core.UIComponent;
6 import mx.controls.Alert;
7
8 //定义控件的棋格图案的绘制颜色,背景色以及棋格大小
9 //定义为属性
10   private var _dot_color : uint = 0xCCCCCC;
11 private var _back_color : uint = 0xFFFFFF;
12 private var _dot_size : uint = 8;
13
14 //一个示例的Sprite,用于会知道BITMAPDATA上
15   private var CUBE : Sprite = new Sprite();
16 //棋格BITMAPDATA,用于repeat
17   private var bmpData : BitmapData = null;
18
19 public function get DOT_COLOR():uint
20 {
21 return _dot_color;
22 }
23
24 public function set DOT_COLOR(c:uint):void
25 {
26 _dot_color = c;
27 }
28
29 public function get BACK_COLOR():uint
30 {
31 return _back_color;
32 }
33
34 public function set BACK_COLOR(c:uint):void
35 {
36 _back_color = c;
37 }
38
39 public function get DOT_SIZE():uint
40 {
41 return _dot_size;
42 }
43
44 public function set DOT_SIZE(c:uint):void
45 {
46 _dot_size = c;
47 }
48
49
50
51 private function init():void
52 {
53 //初始化,绘制一个棋格,并绘制到BITMAPDATA上
54   CUBE.graphics.beginFill(DOT_COLOR);
55 CUBE.graphics.drawRect(0,0,DOT_SIZE,DOT_SIZE);
56 CUBE.graphics.drawRect(DOT_SIZE,DOT_SIZE,DOT_SIZE,DOT_SIZE);
57 CUBE.graphics.endFill();
58
59 bmpData = new BitmapData(DOT_SIZE*2,DOT_SIZE*2,false,BACK_COLOR);
60 bmpData.draw(CUBE);
61
62 //更新屏幕
63   this.invalidateDisplayList();
64
65 }
66
67
68 protected override function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
69 {
70 if(bmpData != null)
71 {
72 //将整个控件区域以repeat模式填充BITMAPDATA
73   this.graphics.beginBitmapFill(bmpData,null,true,false);
74 this.graphics.drawRect(0,0,unscaledWidth,unscaledHeight);
75 this.graphics.endFill();
76 }
77 /*
78 this.graphics.clear();
79 this.graphics.beginFill(BACK_COLOR);
80 this.graphics.drawRect(0,0,unscaledWidth,unscaledHeight);
81
82 this.graphics.beginFill(DOT_COLOR);
83
84 var x_cnt : uint = unscaledWidth /2/ DOT_SIZE + 1;
85 var y_cnt : uint = unscaledHeight / DOT_SIZE +1;
86
87
88 for(var i : uint = 0; i<x_cnt;i++)
89 for(var j : uint = 0; j<y_cnt;j++)
90 {
91 if(j%2==0)
92 this.graphics.drawRect(i*DOT_SIZE*2,j*DOT_SIZE,DOT_SIZE,DOT_SIZE);
93 else
94 this.graphics.drawRect((i*2+1)*DOT_SIZE,j*DOT_SIZE,DOT_SIZE,DOT_SIZE);
95 }
96
97 this.graphics.endFill();
98 */
99 }
100 ]]>
101 </mx:Script>
102
103  </mx:Canvas>
104