读书人

v2_09 引见ActionScript类编程

发布时间: 2012-10-10 13:58:11 作者: rapoo

v2_09 介绍ActionScript类编程
v2_09 Programming ActionScript classes? 介绍ActionScript类编程?ex2_07??很多教程中讲到的跟java类似的概念及写法就不写出来了?Mxml与ActionScript的数据绑定,需要在声明实例时带上Bindable?Bindable 可以写在Class上面,以表明所有字段都是可以绑定的

[Bindable] public class Employee
?但要注意的是,不建议使用全部绑定,因为这样会消耗更多的资源,系统会监控所有字段是否发生变化所以,应该尽量在需要绑定的数据上进行绑定?试试ctrl+shift+c的效果,进行块注释?例子:开始时,EmployeeDisplay.mxml中定义了两个属性
[Bindable] public var imageFile:String;[Bindable]public var fullName:String; 
??在引用时,需要绑定两个这两个属性
<components:EmployeeDisplay x="10" y="41" imageFile="{firstEmployee.imageFile}" fullName="Andrew Brilliam"/><components:EmployeeDisplay x="105" y="41"imageFile="{secondEmployee.imageFile}" fullName="Annette Kotter"/> 
??既然有了Employee对象,那我们就使用这上类来绑定数据让EmployeeDisplay.mxml持有employee对象?该例子最终的效果就是EmployeeDisplay.mxml作为employee的显示组件,持有employee对象主程序将从服务端获得的数据绑定到EmployeeDisplayemployee的类型Employee,它有属性及方法两部分.可以自由实现业务逻辑EmployeeDisplay.mxml
<?xml version="1.0" encoding="utf-8"?><s:Group xmlns:fx="http://ns.adobe.com/mxml/2009"     xmlns:s="library://ns.adobe.com/flex/spark"     xmlns:mx="library://ns.adobe.com/flex/mx">    <!-- Properties of the parent ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->                <!-- Metadata ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->                <!-- Styles ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->                <!-- Script ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->        <fx:Script>        <![CDATA[                        // import statements ----------------------------------------                        import components.Employee;            // variable declarations ------------------------------------                        [Bindable]            public var employeeData:Employee;                        // getter/setters -------------------------------------------                                    // helper methods -------------------------------------------                                    // event handlers -------------------------------------------                          ]]>    </fx:Script>        <!-- Declarations ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->                <!-- UI components ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->        <mx:Image x="0" y="0"         source="images/{employeeData.imageFile}" />        <s:Label x="0" y="80"         text="{employeeData.createFullName()}"/>    </s:Group>
?Employee.as?
package components{    public class Employee    {        [Bindable]        public var imageFile:String;        public var firstName:String;        public var lastName:String;                public function Employee(fileName:String, fName:String, lName:String)        {            imageFile = fileName;            firstName = fName;            lastName = lName;        }                public function createFullName():String        {            return firstName + " " + lastName;        }    }}
?ex2_07_solution.mxml
<?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"     minWidth="1024" minHeight="768"     xmlns:components="components.*">    <!-- Exercise 2.07: Creating an ActionScript class and instances -->        <!-- Properties of the parent ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->                <!-- Metadata ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->                <!-- Styles ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->                <!-- Script ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->        <fx:Script>        <![CDATA[            import components.Employee;                        [Bindable]            private var firstEmployee:Employee = new Employee("abrilliam.jpg","Andrew","Brilliam");                        [Bindable]            private var secondEmployee:Employee = new Employee("akotter.jpg","Annette","Kotter");        ]]>    </fx:Script>        <!-- Declarations ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->                <!-- UI components ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->        <s:Label x="10" y="10"         text="Employees"         fontWeight="bold" fontSize="20"/>        <components:EmployeeDisplay  x="10" y="41"        employeeData="{firstEmployee}"/>        <components:EmployeeDisplay x="105" y="41"        employeeData="{secondEmployee}"/></s:Application>
?

读书人网 >编程

热点推荐