简单测试用控件.

简单测试控件.


  不知道其他人的习惯,我个人习惯在项目开发的过程中,独立新建一些测试项目,来完成某些开发功能的模拟,然后才移植到项目中.这样的好处是在独立测试项目中能够快速,可控的完成一个功能/模块/特效的开发模拟测试. 并且还利于经验积累. 由于独立测试项目代码量小, 测试与改动起来非常快速与便利.
  

  而在测试过程中, 最重复做的事情就是各种属性,变量的变化,如果能边运行边看到效果,那便是极好的. 本着尽可能避免重复劳动程序猿原则, 把属性变更和Slider控件结合起来封装如下.

 1         override protected function propCreated():void 
 2         {
 3             super.propCreated();
 4             
 5             _layout.push(new CtrlProp(propChangeHandler, '{"prop":"width","min":0,"max":500}').getCtrls());
 6             _layout.push(new CtrlProp(propChangeHandler, '{"prop":"height","min":0,"max":500}').getCtrls());
 7             _layout.push(CtrlUtils.createSeparator());
 8             var props:Array = [];
 9             props.push('{"prop":"x","min":-100,"max":100}');
10             props.push('{"prop":"y","min":-100,"max":100}');
11             props.push('{"prop":"scaleX","min":-1,"max":1,"step":0.1,"propValue":1}');
12             props.push('{"prop":"scaleY","min":-1,"max":1,"step":0.1,"propValue":1}');
13             _layout = _layout.concat(CtrlUtils.createCtrlProps(propsChangeHandler, props));
14         }
15         
16         private function propChangeHandler(cProps:CtrlProp):void 
17         {
18             if (!cProps) return;
19             var target:* = _target;
20             var propName:String = cProps.ctrlPropInfo.prop;
21             var propValue:Number = cProps.ctrlPropInfo.propValue;
22             target[propName] = propValue;
23         }
24         
25         override protected function propsChangeHandler(...args):void
26         {
27             var target:* = _target;
28             var i:int, len:int;
29             len = args.length;
30             for (i = 0; i < len; i++)
31             {
32                 var item:Object = args[i];
33                 if (item.type == CtrlPropInfo.TYPE_PROP)
34                 {
35                     var propName:String = item['prop'];
36                     var propValue:Number = item['propValue'];
37                     target[propName] = propValue;
38                 }
39             }
40         }
41         


具体实现的方法很多. 不赘叙了. 看示例. 在后面的例子里会大量用到它.

 

posted @ 2014-08-20 18:05  defaultred  阅读(146)  评论(0编辑  收藏  举报