编写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 阅读器 (二) --------------总结性学习的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/382867

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

线性代数|机器学习-P36在图中找聚类

文章目录 1. 常见图结构2. 谱聚类 感觉后面几节课的内容跨越太大,需要补充太多的知识点,教授讲得内容跨越较大,一般一节课的内容是书本上的一章节内容,所以看视频比较吃力,需要先预习课本内容后才能够很好的理解教授讲解的知识点。 1. 常见图结构 假设我们有如下图结构: Adjacency Matrix:行和列表示的是节点的位置,A[i,j]表示的第 i 个节点和第 j 个

Node.js学习记录(二)

目录 一、express 1、初识express 2、安装express 3、创建并启动web服务器 4、监听 GET&POST 请求、响应内容给客户端 5、获取URL中携带的查询参数 6、获取URL中动态参数 7、静态资源托管 二、工具nodemon 三、express路由 1、express中路由 2、路由的匹配 3、路由模块化 4、路由模块添加前缀 四、中间件