编写Flex 阅读器 (二) --------------总结性学习

2023-11-10 13:20

本文主要是介绍编写Flex 阅读器 (二) --------------总结性学习,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

       首先很感谢两位朋友@cyper和@giantchen2011 两位朋友对博文的支持。你们的回复是我的动力。我刚刚开始写博客,内容文字生涩。请大家见谅。也请指正不足之处。

       起几天看了书后发现,Flex和ActionScript很想Java等语言。而开发环境很想Visual Stadio。所以个人觉得学起来还比较简单。可能也是因为我还没有学习到深处吧。但是就现在而言兴趣非常浓。看到了第六章后,我开始总结之前的实验和内容。进行自己构建了一个小东西做。因为是刚毕业的学生,也因为是自己学习,做实验,就想写一个学生管理的那东西。比较了解业务,也能怀念下刚离开的学生青涩时代。

       其实内容大部分在昨天就写了,因为这两天节日,我要陪我第一次来成都的妈妈闲逛,所以也没能全心全意的投入到博客的写作和Flex的学习和实验中。所以今天尽快将昨天的程序编写部分思路等内容补上,再继续进行学习。

      我参照着书上的结构,StudentBoard和StudentEntry两个mxml文件。工作主要在StudentBoard上完成。结构图如下:

QQ截图20121003232540

在model中,我放入了Student的类信息,在source文件夹下有一个introduction.txt的外部资源,存放说明。valueObjects存放Student.as。

<Student> <name>Pily</name> <gender>Male</gender> <attentTest>0</attentTest> <age>24</age> <NO>08335634</NO> 
</Student>

这个是Student.xml 文件内的内容。通过这个xml文件,对Student进行了定义。

我在introduction.txt文件内存放了一些测试字符串。

    Test Introduction
Test Introduction.        Test Introduction.       
Test Introduction.        Test Introduction.
Test Introduction.        Test Introduction.
Test Introduction.        Test Introduction.       
Test Introduction.        Test Introduction.

没有什么特别的东西。就是为了在mx:TextArea内显示公告的信息。

在studentBoard.mxml内

<?xml version="1.0" encoding="utf-8"?> 
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="complete_handler(stu_model)"> <mx:Model id="stu_model" source="model/Student.xml" /> <mx:ApplicationControlBar dock="true"> <mx:LinkButton label="Introduction" click="this.currentState=''"/> <mx:LinkButton label="Add Student" click="to_add_student()"/> <mx:LinkButton label="Student List" click="this.currentState='student_list'"/> </mx:ApplicationControlBar> <mx:Script> <![CDATA[ import valueObjects.*; private var student:Student; private function complete_handler(stu:Object):void { student = Student.buildStudent(stu); } ]]> </mx:Script> <mx:states> <mx:State name="add_student"> <mx:SetProperty target="{introduction_panel}" value="0" name="width"/> <mx:SetProperty target="{introduction_panel}" value="0" name="height"/> <mx:AddChild> <mx:Panel width="100%" height="90%"> <mx:Form> <mx:FormHeading label="Add Student" name="form_heading"/> <mx:FormItem> <mx:TextInput id="studentName" text="{student.name}"/> </mx:FormItem> <mx:FormItem> <mx:TextInput id="gender" text="{student.gender}" />                            </mx:FormItem> <mx:FormItem> <mx:TextInput id="age" text="{student.age}" />                            </mx:FormItem> <mx:FormItem> <mx:TextInput id="NO" text="{student.NO}"/> </mx:FormItem> <mx:FormItem> <mx:ComboBox dataProvider="{student.gender}"> </mx:ComboBox>                            </mx:FormItem> </mx:Form> <mx:ControlBar> </mx:ControlBar> </mx:Panel> </mx:AddChild> </mx:State> <mx:State name="student_list"> <mx:SetProperty target="{introduction_panel}" value="0" name="width"/> <mx:SetProperty target="{introduction_panel}" value="0" name="height"/> <mx:AddChild> <mx:Panel width="100%" height="90%"> <mx:ControlBar> </mx:ControlBar> </mx:Panel> </mx:AddChild> </mx:State> </mx:states> <mx:Label text="Created By Pily Kevin Hao"  bottom="20" right="20"/> <mx:Script> <![CDATA[ import mx.effects.effectClasses.PauseInstance; import flash.utils.clearInterval; import mx.utils.ObjectUtil; import flash.utils.setInterval; import mx.effects.Pause; import mx.controls.Alert; import flash.display.Loader;private var timer:Timer = null; private function init_show_count_time():void { if(timer == null) { timer = new Timer(1000,11); timer.addEventListener(TimerEvent.TIMER,show_count_time); timer.start(); } } private  function btn_ok_click():void{ if(timer != null) { timer.stop(); timer = null; btn_ok.label = 'OK'; btn_refuse.setVisible(false); } Alert.show("OK! You are right!"); } private function show_count_time(e:TimerEvent):void{ var times:uint = 10 - timer.currentCount; if(times > 0) { btn_ok.label = "OK["+times+"s]"        }else{ timer.stop(); Alert.show("Time has been out of 10s.The web will be closed!"); timer = null; } }    private function refuse_show(event:Event):void{ trace(event); if(timer != null) { timer.stop(); timer = null; btn_ok.setVisible(false); } btn_ok.label = 'OK'; Alert.show("You have refused the Items,So, we will close the web","Tips"); } private function init_introduction():void { var request:URLRequest = new URLRequest("source/introduction.txt"); request.method = URLRequestMethod.POST; var loader:URLLoader = new URLLoader(); loader.load(request); loader.addEventListener(Event.COMPLETE,load_completed); } private function load_completed(e:Event):void { var loader2:URLLoader = URLLoader(e.target); introduction_text.text = loader2.data; } private function to_add_student():void { this.currentState='add_student'; if(timer) { timer.stop(); timer=null; btn_ok.label="OK"; } } ]]> </mx:Script> <mx:Panel width="100%" height="93%" id="introduction_panel"> <mx:TextArea editable="false" id="introduction_text" width="100%" height="100%" initialize="init_introduction()" textAlign="center" > </mx:TextArea> <mx:ControlBar> <mx:Button label="OK[10s]" id="btn_ok" initialize="init_show_count_time()" click="btn_ok_click()"  /> <mx:Button label="Refuse" id="btn_refuse" click="refuse_show(event)" /> </mx:ControlBar> </mx:Panel> 
</mx:Application>


可能结构比较乱。主要实现功能。结构代码还将继续优化。

运行图片为

QQ截图20121003235227

QQ截图20121003235242

 

QQ截图20121003235315

总结:

通过这个程序,在网上参照了很多东西

1)Adobe Flash Platform * 加载外部数据

2)Actionscript的Timer计时器小例子 - - ITeye技术网站

3)ActionScript 命令setInterval_潇湘残荷雨_百度空间

谢谢。而且我发现了一个很好的地方,学习Flex的地方,那就是官网的Documents。http://help.adobe.com/zh_CN/as3/dev/index.html。

知识点:

    1)加载外部文件,

    2)倒计时编写

   3)数据绑定

    4)mx:\State编写

具体详情,我将在下一篇博文中介绍。现在我还是先学习会儿。

转载于:https://my.oschina.net/worldread/blog/81465

这篇关于编写Flex 阅读器 (二) --------------总结性学习的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:https://blog.csdn.net/weixin_34148508/article/details/92430488
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/382867

相关文章

Java进阶学习之如何开启远程调式

《Java进阶学习之如何开启远程调式》Java开发中的远程调试是一项至关重要的技能,特别是在处理生产环境的问题或者协作开发时,:本文主要介绍Java进阶学习之如何开启远程调式的相关资料,需要的朋友... 目录概述Java远程调试的开启与底层原理开启Java远程调试底层原理JVM参数总结&nbsMbKKXJx

基于.NET编写工具类解决JSON乱码问题

《基于.NET编写工具类解决JSON乱码问题》在开发过程中,我们经常会遇到JSON数据处理的问题,尤其是在数据传输和解析过程中,很容易出现编码错误导致的乱码问题,下面我们就来编写一个.NET工具类来解... 目录问题背景核心原理工具类实现使用示例总结在开发过程中,我们经常会遇到jsON数据处理的问题,尤其是

Java深度学习库DJL实现Python的NumPy方式

《Java深度学习库DJL实现Python的NumPy方式》本文介绍了DJL库的背景和基本功能,包括NDArray的创建、数学运算、数据获取和设置等,同时,还展示了如何使用NDArray进行数据预处理... 目录1 NDArray 的背景介绍1.1 架构2 JavaDJL使用2.1 安装DJL2.2 基本操

SpringBoot+MyBatis-Flex配置ProxySQL的实现步骤

《SpringBoot+MyBatis-Flex配置ProxySQL的实现步骤》本文主要介绍了SpringBoot+MyBatis-Flex配置ProxySQL的实现步骤,文中通过示例代码介绍的非常详... 目录 目标 步骤 1:确保 ProxySQL 和 mysql 主从同步已正确配置ProxySQL 的

MyBatis-Flex BaseMapper的接口基本用法小结

《MyBatis-FlexBaseMapper的接口基本用法小结》本文主要介绍了MyBatis-FlexBaseMapper的接口基本用法小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具... 目录MyBATis-Flex简单介绍特性基础方法INSERT① insert② insertSelec

CSS3中使用flex和grid实现等高元素布局的示例代码

《CSS3中使用flex和grid实现等高元素布局的示例代码》:本文主要介绍了使用CSS3中的Flexbox和Grid布局实现等高元素布局的方法,通过简单的两列实现、每行放置3列以及全部代码的展示,展示了这两种布局方式的实现细节和效果,详细内容请阅读本文,希望能对你有所帮助... 过往的实现方法是使用浮动加

利用Python编写一个简单的聊天机器人

《利用Python编写一个简单的聊天机器人》这篇文章主要为大家详细介绍了如何利用Python编写一个简单的聊天机器人,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 使用 python 编写一个简单的聊天机器人可以从最基础的逻辑开始,然后逐步加入更复杂的功能。这里我们将先实现一个简单的

使用PyQt5编写一个简单的取色器

《使用PyQt5编写一个简单的取色器》:本文主要介绍PyQt5搭建的一个取色器,一共写了两款应用,一款使用快捷键捕获鼠标附近图像的RGB和16进制颜色编码,一款跟随鼠标刷新图像的RGB和16... 目录取色器1取色器2PyQt5搭建的一个取色器,一共写了两款应用,一款使用快捷键捕获鼠标附近图像的RGB和16

基于Qt开发一个简单的OFD阅读器

《基于Qt开发一个简单的OFD阅读器》这篇文章主要为大家详细介绍了如何使用Qt框架开发一个功能强大且性能优异的OFD阅读器,文中的示例代码讲解详细,有需要的小伙伴可以参考一下... 目录摘要引言一、OFD文件格式解析二、文档结构解析三、页面渲染四、用户交互五、性能优化六、示例代码七、未来发展方向八、结论摘要

基于Python实现PDF动画翻页效果的阅读器

《基于Python实现PDF动画翻页效果的阅读器》在这篇博客中,我们将深入分析一个基于wxPython实现的PDF阅读器程序,该程序支持加载PDF文件并显示页面内容,同时支持页面切换动画效果,文中有详... 目录全部代码代码结构初始化 UI 界面加载 PDF 文件显示 PDF 页面页面切换动画运行效果总结主