简单测试用控件.
简单测试控件.
不知道其他人的习惯,我个人习惯在项目开发的过程中,独立新建一些测试项目,来完成某些开发功能的模拟,然后才移植到项目中.这样的好处是在独立测试项目中能够快速,可控的完成一个功能/模块/特效的开发模拟测试. 并且还利于经验积累. 由于独立测试项目代码量小, 测试与改动起来非常快速与便利.
而在测试过程中, 最重复做的事情就是各种属性,变量的变化,如果能边运行边看到效果,那便是极好的. 本着尽可能避免重复劳动程序猿原则, 把属性变更和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
具体实现的方法很多. 不赘叙了. 看示例. 在后面的例子里会大量用到它.