读书人

Function.apply在组件中的运用

发布时间: 2012-11-22 00:16:41 作者: rapoo

Function.apply在组件中的应用
在Flex的方法参数中,可以使用预先赋值的方式,所以在这样的方法中参数的数量就不固定,因此可以在组件中方法设置参数的时候使用Function.apply方法,代码如下:

<?xml version="1.0" encoding="utf-8"?><s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"    xmlns:s="library://ns.adobe.com/flex/spark"    xmlns:mx="library://ns.adobe.com/flex/mx"    xmlns:container="pizazz.flex4.container.*"   minWidth="955" minHeight="600"><s:layout><s:VerticalLayout /></s:layout><fx:Script><![CDATA[import mx.containers.Form;import mx.containers.FormHeading;private function clikcHandler():void{addElement(createForm("1", ["点击1", null, 200]));addElement(createForm("2", ["点击2"]));}private function createForm(label:String, button:Array):Form{const _form:Form = new Form();var _head:FormHeading = new FormHeading();_head.label = label;var _btn:Button = buttonFactory.apply(null, button);_form.addElement(_head);_form.addElement(_btn);return _form;}public function buttonFactory(label:String,onClick:Function = null, width:Number = NaN, icon:Class = null, target:Button = null):Button{if(!target){target = new Button();}if(onClick != null){target.addEventListener(MouseEvent.CLICK, onClick);}if(icon != null){target.setStyle("icon", icon);}target.setStyle("cornerRadius", 0);target.width = width;target.label = label;return target;}]]></fx:Script><s:Button width="100" label="点击" click="clikcHandler()" /></s:Application>

这样应用,组件方法实现就比较灵活了

读书人网 >Web前端

热点推荐