`

初学FLEX做的小练习(一)-静态页面部分

 
阅读更多

前言:

练习涉及到FLEX常用控件,与后台交互的数据服务(RemoteObject,WebService),FLEX的几种导航,FLEX事件。

相关工程代码请下载 http://download.csdn.net/detail/iamyzs/4284826

一、相关软件

Flex Builder4

MyEclipse5.5

tomcat6.0(我的路径 D:\apache-tomcat-6.0.35)

blazeds-turnkey-4.0.0.14931

二、代码

纵览目录结构如下:

 

1)主页面 src/main.mxml

 

<?xml version="1.0"?>
<mx:Application  xmlns:mx="http://www.adobe.com/2006/mxml" backgroundColor="white" xmlns:ui="ui.*" >
     <!--xmlns:ui="ui.*"     引入ui下mxml组件-->

<!--使用ViewStack导航功能-->
    <mx:TabBar id="myTabBar" dataProvider="{myViewStack}" />
    <mx:ViewStack id="myViewStack" width="100%" height="100%">
        <ui:controls id="control" label="常用控件"/>
        <ui:dataprovider id="dataprovider" label="数据服务"/>
        <ui:tuopu id="tuopu" label="拓 扑 图"/>
        <ui:mynavigator id="mynavigator" label=" 导  航 "/>
        <ui:flexevent id="flexevent" label=" 事  件 "/>
    </mx:ViewStack>
</mx:Application>

2)简单控件TAB页面 src/ui/controls.mxml 组件 ,显示常用控件基本用法。

<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="100%">
    <mx:Script>
        <![CDATA[
            import mx.controls.Alert;
            public function showMsg(msg:String):void{
                mx.controls.Alert.show(msg);
            }
        ]]>
    </mx:Script>
<mx:Panel title="常用控件" width="100%" height="100%">
    <mx:Label text="常用控件" color="red"/>
    <mx:Form>  <!--mx:form布局-->
        <mx:FormHeading label="常用控件" horizontalCenter="center" color="red"/>
        <mx:FormItem label="TextInput"  fontWeight="bold" >
            <mx:TextInput id="yourName" width="250"  />
        </mx:FormItem>
        
        <mx:FormItem label="TextArea"  fontWeight="bold" >
            <mx:TextArea id="aboutYou" textAlign="center" width="250" />
        </mx:FormItem>
        
        <mx:FormItem label="RichTextEditor"  fontWeight="bold" >
            <mx:RichTextEditor id="rte" height="150"/>
        </mx:FormItem>
        
        <mx:FormItem label="DateField"  fontWeight="bold" >
            <mx:DateField text="12/05/2008" id="thisDateField" change="showMsg(thisDateField.selectedDate.toString())"/>            
        </mx:FormItem>
        
        <mx:FormItem label="LinkBar"  fontWeight="bold" >
            <mx:LinkBar id="thisLinkBar" dataProvider="{['One','Two','Three']}"/>
        </mx:FormItem>
        
        
        <mx:FormItem label="ButtonBar"  fontWeight="bold" >
            <mx:ButtonBar id="thisBtnBar" dataProvider="{['One','Two','Three']}"/>
        </mx:FormItem>
        
        <mx:FormItem label="ToggleButtonBar"  fontWeight="bold" >
            <mx:ToggleButtonBar id="thisToggleBar" dataProvider="{['One','Two','Three']}"/>
        </mx:FormItem>
        
        <mx:FormItem label="CheckBox"  fontWeight="bold" >
            <mx:HBox>
                <mx:CheckBox id="s1" label="选择1"  click="showMsg(''+s1.selected)"/>
                <mx:CheckBox id="s2" label="选择2"  click="showMsg(''+s2.selected)"/>
            </mx:HBox>
        </mx:FormItem>
        
        <mx:FormItem label="RadioButtonGroup"  fontWeight="bold" >
            <mx:HBox>
                <mx:RadioButtonGroup id="spam"/>
                <mx:RadioButton id="yes"
                                groupName="spam"
                                label="yes" />
                <mx:RadioButton id="no"
                                groupName="spam"
                                label="no"/>
            </mx:HBox>
            
        </mx:FormItem>
    </mx:Form>
    
</mx:Panel>
</mx:Canvas>

 

简单控件

 

 

3)事件TAB页面  src/ui/flexevent.mxml,常用事件用法。

<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:fx="http://ns.adobe.com/mxml/2009"
           xmlns:s="library://ns.adobe.com/flex/spark"
           xmlns:mx="library://ns.adobe.com/flex/mx"  width="100%" height="100%" creationComplete="initFunc()">

<!--creationComplete是页面加载完成执行的函数-->
    <fx:Declarations>
        <!-- 将非可视元素(例如服务、值对象)放在此处 -->
    </fx:Declarations>
    <fx:Script>
        <![CDATA[
            import mx.controls.Alert;
            //mxml里侦听事件
            public function clickFunction(event:Event):void{
                var message:String ="";
                message+="label:"+event.target.label+"\ncurrentTarget:"+event.currentTarget+"\ntype:"+event.type+"\neventPhase:"+event.eventPhase;
                Alert.show(message,"Event test");
            }
            
            //ActionScript侦听事件
            public function initFunc():void{
                thisButton2.addEventListener("click",clickFunction);

//给thisButton2对象动态增加click事件,click事件被触发时执行clickFunction函数。
            }
            
            //绑定事件
            [Bindable]
            public var changedValue:String ="label before event";
            
            public function changeFunction():void{
                changedValue =ti.text;
            }
            
        ]]>
    </fx:Script>
    <mx:Panel title=" 事 件 " width="100%" height="100%">
        <mx:Label text="mxml里侦听事件" fontWeight="bold" color="#ff0000"/>
        <mx:Button  id="thisButton1" label="Click button1111!" click="clickFunction(event)"/>
        
        <mx:Label text="ActionScript侦听事件" fontWeight="bold" color="#ff0000"/>
        <mx:Button id="thisButton2" label="Click button22222!" />
        
        <mx:Label text="绑定事件" fontWeight="bold" color="#ff0000"/>
        <mx:TextInput text="" id="ti" change="changeFunction()"/>
        <mx:Button id="thisButton3" label="{changedValue}" /> <!--Button的label值随changedValue值的变化而变化-->
        
    </mx:Panel>
    
    
</mx:Canvas>

 

事件

4)导航TAB页面 src/ui/mynavigator.mxml

<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas 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:nav="ui.nav.*" width="100%" height="100%">

<!--xmlns:nav="ui.nav.*" 引入 ui.nav.*下所有组件-->
    <fx:Declarations>
        <!-- 将非可视元素(例如服务、值对象)放在此处 -->
    </fx:Declarations>
 
    <mx:Panel title=" 导 航 " width="100%" height="100%">
        <mx:Accordion width="100%" height="100%" id="myAccord">
            <nav:menu label="菜单" id ="m"/>
            <nav:menubar label="菜单栏"/>
            <nav:viewstack label="ViewStack"/>
            <mx:Canvas label="TagNavigator"><!--导航.TabNavigator使用-->
                <mx:TabNavigator width="500" height="300">
                    <mx:HBox label="Tab 1"/>
                    <mx:HBox label="Tab 2"/>
                    <mx:HBox label="Tab 3"/>
                </mx:TabNavigator>
            </mx:Canvas>
            <mx:Canvas label="Accordition">
                <mx:Accordion width="500" height="300"> <!--导航.Accordion使用-->
                    <mx:Canvas label="  >>Section1">  
                        <mx:List borderVisible="false">
                                <fx:Object label="菜单1"/>
                                <fx:Object label="菜单2"/>  
                        </mx:List>
                    </mx:Canvas>
                    <mx:Canvas label="  >>Section2">  
                        <mx:List borderVisible="false">
                                <fx:Object label="菜单3"/>
                                <fx:Object label="菜单4"/>  
                        </mx:List>
                    </mx:Canvas>
                    <mx:Canvas label="  >>Section3">
                    </mx:Canvas>
                </mx:Accordion>
            </mx:Canvas>
        </mx:Accordion>
    </mx:Panel>
</mx:Canvas>

导航-菜单

5) 这个没学会呢 ,占坑 ,src/ui/tuopu.mxml

<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:fx="http://ns.adobe.com/mxml/2009"
           xmlns:s="library://ns.adobe.com/flex/spark"
           xmlns:mx="library://ns.adobe.com/flex/mx"  width="100%" height="100%">
    <fx:Declarations>
        <!-- 将非可视元素(例如服务、值对象)放在此处 -->
    </fx:Declarations>
    <mx:Panel title="拓扑图" width="100%" height="100%">
    </mx:Panel>
</mx:Canvas>

 

6)导航.菜单组件 src/ui/nav/menu.mxml

<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:fx="http://ns.adobe.com/mxml/2009"
           xmlns:s="library://ns.adobe.com/flex/spark"
           xmlns:mx="library://ns.adobe.com/flex/mx" creationComplete="initalizeMenu();" width="100%" height="100%">
    <fx:Declarations>
        <!-- 将非可视元素(例如服务、值对象)放在此处 -->
    <mx:XMLListCollection id="myMenuData"><!--mx:XMLListCollection定义菜单来源数据-->
        <fx:XMLList >
            <submenu label="Tasks">
                <submenu label="Add Request"/>
                <submenu label="Add Person"/>
                <submenu label="Customer">
                  <submenu label="Employee"/>
                </submenu>
            </submenu>
        </fx:XMLList>
    </mx:XMLListCollection>
    </fx:Declarations>
    <fx:Script>
        <![CDATA[
            import mx.controls.Menu;
            import mx.events.MenuEvent;
            public var myMenu:Menu;
            private function initalizeMenu():void{
                myMenu =Menu.createMenu(this.parent,myMenuData,true);//创建菜单
                myMenu.labelField="@label";//显示XMLListCollection的label字段
                myMenu.x=200;
                myMenu.y = 200;
                myMenu.addEventListener("itemClick",handleItemClick);//菜单项增加单击事件的监听,单击执行函数handleItemClick
                myMenu.show();//菜单显示出来
            }
            
            private function handleItemClick(evt:MenuEvent):void{
                mx.controls.Alert.show(evt.item.@label,"menu");
            }
        ]]>
    </fx:Script>
    <mx:Panel title="" width="100%" height="100%">
    
        <mx:Button id="myButton" creationComplete="initalizeMenu()" label="Display Menu" click="myMenu.show()"/>
    </mx:Panel>
</mx:Canvas>

 

7)导航.菜单栏组件 src/ui/nav/menubar.mxml

<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:fx="http://ns.adobe.com/mxml/2009"
           xmlns:s="library://ns.adobe.com/flex/spark"
           xmlns:mx="library://ns.adobe.com/flex/mx"   width="100%" height="100%">
    <fx:Declarations>
        <!-- 将非可视元素(例如服务、值对象)放在此处 -->
    <mx:XMLListCollection id="myMenuData">
        <fx:XMLList >
            <submenu label="File">
                <submenu label="New" >
                  <submenu label="Project"/>
                  <submenu label="Web Project"/>
                </submenu>
                <submenu label="Save" />
            </submenu>
            <submenu label="Print"/>
        </fx:XMLList>
    </mx:XMLListCollection>
    </fx:Declarations>
    
    <mx:Panel title="" width="100%" height="100%">
         <mx:MenuBar id="myMBar" dataProvider="{myMenuData}" labelField="@label"/>  <!--dataProvider菜单栏数据来源-->
    </mx:Panel>
</mx:Canvas>

 

8)导航.ViewStack 组件src/ui/nav/viewStack.mxml

 

<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:fx="http://ns.adobe.com/mxml/2009"
           xmlns:s="library://ns.adobe.com/flex/spark"
           xmlns:mx="library://ns.adobe.com/flex/mx"  width="100%" height="100%">
    <fx:Declarations>
        <!-- 将非可视元素(例如服务、值对象)放在此处 -->  
    </fx:Declarations>
    <fx:Script>
        <![CDATA[
            import mx.events.ItemClickEvent;
            import mx.controls.Alert;
            private function handleClick(event:ItemClickEvent){
                Alert.show(event.label);
            }
        ]]>
    </fx:Script>
    <mx:Panel title="" width="100%" height="100%">
    
        <mx:TabBar id="myTabBar" dataProvider="{myViewStack}"  itemClick="handleClick(event)"/>
        <mx:ViewStack id="myViewStack" width="100%" height="100%">
            <mx:Canvas id="control" label="常用控件">
             <mx:Label text="aaa" fontWeight="bold" color="#ff0000"/>
            </mx:Canvas>
            <mx:Canvas id="remoteObj" label="数据服务"/>
            <mx:Canvas id="tuopu" label="拓 扑 图"/>
            <mx:Canvas id="mynavigator" label=" 导  航 "/>
            <mx:Canvas id="flexevent" label=" 事  件 "/>
        </mx:ViewStack>
    </mx:Panel>
</mx:Canvas>

 

 

 

--未完待续

分享到:
评论

相关推荐

    淘宝首屏静态页面(HTML+CSS)布局练习.zip

    这个练习专为初学者设计,旨在帮助你提升网页样式布局的能力,而不涉及复杂的交互或逻辑功能。 **HTML(HyperText Markup Language)** 是网页内容的基础,它定义了网页的结构。在这个项目中,你会学习如何使用HTML...

    Flex完全自学入门手册

    《Flex完全自学入门手册》是一本专为初学者设计的指南,旨在帮助读者掌握Adobe Flex这一强大的富互联网应用程序(RIA)开发框架。Flex基于ActionScript 3,这是一种面向对象的编程语言,它提供了丰富的功能和高效的...

    学成在线**静态网页项目**前端html&css&flex

    运用了html,css,flex布局等知识,适用于前端初学者练习静态网页的制作,以便于熟练掌握前端基础知识的运用。这个项目还可以帮助初学者理解网页布局和样式设计的基本原则,同时提供了一个实践的机会来加强对HTML和...

    前端页面练习:学成在线首页

    在前端开发领域,创建静态页面是初学者学习的基础环节,也是进阶技能的基石。"学成在线首页"这个项目是一个很好的实践平台,它涉及HTML(HyperText Markup Language)和CSS(Cascading Style Sheets)两大核心技术,...

    写的一个静态网站随便写的

    在描述中,虽然内容重复,但我们可以推断出这可能是一个个人项目,开发者随意创建了一个静态网站来练习技能或者展示作品。静态网站的创建通常涉及以下知识点: 1. HTML(HyperText Markup Language):这是构建网页...

    HTML CSS 自制淘宝静态首页.zip

    总的来说,这个压缩包提供了一个实用的练习平台,让你能实际操作HTML和CSS,创建一个与淘宝首页类似的静态页面。通过这个项目,你可以深入理解这两种语言的交互,以及如何使用它们来构建具有视觉吸引力的网页。对于...

    【HTML+CSS练习二】学成在线首页

    【HTML+CSS练习二】学成在线首页是一个学习HTML和CSS基础的实践项目,旨在帮助初学者通过实际操作理解这两种语言的基本用法。这个练习包含了HTML结构和CSS样式设计,以及部分图片素材的使用,使得页面看起来更加生动...

    仿淘宝网页面(html+css+js)-前端作业

    2. `&lt;nav&gt;`:导航栏,通常包含链接到其他页面或网站部分的链接。 3. `&lt;main&gt;`:主体内容,如登录、搜索和首页展示区域。 4. `&lt;section&gt;`和`&lt;article&gt;`:用于组织页面的特定区域或内容块。 5. `&lt;form&gt;`:用于创建表单...

    HTML做一个简单漂亮的宠物网页(纯html代码)

    这样的练习有助于初学者理解网页设计的基本原理,并能够在实际项目中灵活运用这些知识。此外,通过具体的案例演示,如图片轮播等,进一步加深了对这些技术点的理解和掌握,为未来的学习和工作打下坚实的基础。

    Responsive-Testimonials-Grid:显示客户推荐的彩色网格。 网格被设计为静态的——即在未来不会随着新的推荐而更新。 该页面旨在在平板电脑和移动设备上进行响应。 前端导师初级练习

    在这个特定的项目中,"Responsive-Testimonials-Grid" 是一个前端导师初级练习,旨在帮助初学者掌握如何创建一个适应不同屏幕尺寸的彩色推荐网格,特别是在平板电脑和移动设备上。这个网格设计为静态,意味着一旦...

    长城红酒学生网页设计作业作品静态HTML网页制作模板Dreamweaver网页设计成品

    本作品是针对学生设计的一份静态HTML网页制作模板,旨在教授和练习网页设计的基本技能。主要使用了Dreamweaver作为编辑工具,同时结合了HTML、CSS等核心技术,以实现一个简洁而直观的网页布局。下面将详细介绍这个...

    HTML网页设计制作——初音动漫(6页) dreamweaver作业静态HTML网页设计模板

    - **Dreamweaver**: Adobe Dreamweaver是一款专业的网页设计和开发工具,支持实时预览、自动补全等功能,适合初学者快速上手。 - **HBuilder**: 一款轻量级、高效的HTML/CSS/JS编辑器,特别适合Web前端开发。 ...

    udemy-clone-stutern-css-task:这是udemy登陆页面的简单部分克隆

    【标题】"udemy-clone-stutern-css-task"是一个项目,目标是克隆 Udemy 登录页面的一个简单部分。这个项目主要关注的是前端开发,特别是CSS技术的应用,因为标签只提到了HTML。 【描述】提到的内容简洁明了,表明这...

    CSS布局模型.pdf

    - 对于初学者来说,《CSS布局模型》这本书是一个很好的起点,书中不仅详细介绍了CSS布局的基本概念,还提供了大量的实例和练习,有助于加深理解。 - 阅读官方文档也是一个不错的选择,W3C提供了详尽的CSS规范文档,...

    Web简单个人简历

    【HTML 个人简历】是一种基于Web技术创建的电子简历,它使用HTML(HyperText Markup Language)语言来构建页面结构,并通过CSS(Cascading Style Sheets)进行样式设计,以实现美观且功能丰富的在线展示。...

    JavaScript期末大作业:基于HTML+CSS+JavaScript黑色的bootstrap响应式企业博客介绍模板

    #### 一、项目概述 - **项目名称**:基于HTML+CSS+JavaScript的响应式企业博客介绍模板。 - **适用范围**:此项目适用于大学阶段的学生作为期末作业或课程设计任务,同时也适用于初学者进行实践操作。 - **功能特点*...

    AS3.0自学电子教案

    这个“AS3.0自学电子教案”可能包含了这些主题的详细教程、实例代码和练习项目,对于初学者来说是一份宝贵的资源,能够系统地学习并掌握AS3.0编程技术。通过深入学习,你可以创建出富有交互性和动态性的网页内容,...

    div+css网页布局入门

    在这个“div+css网页布局入门”教程中,我们将深入探讨这个主题,帮助初学者掌握这一基础技能。 **Div元素** Div(Division)是HTML中的一个块级元素,用于组织和分隔页面内容。通过CSS,我们可以对div进行样式控制...

    htmlcss-fluentify

    这些练习可能涵盖创建静态网页、响应式布局、使用Flexbox和Grid设计布局等方面,通过实际操作加深理解和记忆。 总的来说,"htmlcss-fluentify"是一个专注于HTML和CSS学习的项目,它可能提供了一套系统化的教程,...

    黑马基础学习html+css课程笔记和案例

    HTML(HyperText Markup Language)和CSS(Cascading Style Sheets)是前端开发中的核心技术,用于构建和呈现网页...通过系统学习和实战练习,你可以掌握构建现代网页所需的核心技能,为后续的前端开发打下坚实的基础。

Global site tag (gtag.js) - Google Analytics