首先,申明本文是转载
http://blog.csdn.net/ivanmarkliu/archive/2009/07/08/4327570.aspx
,大家可以访问该链接,也可以直接阅读本文后续部分以了解
flex
事件。接下来简单谈下为何要转载此文及本人对此文的一些补充。
可以这样说
flex
是事件驱动的,熟练掌握事件对于提高
flex
开发水平是至关重要的,
flex
的经典绑定机制就是基于
event
。网上对于
flex event
的介绍很多,其中不乏官方的
e
文,但是本人觉得本转载之文对于事件的核心“事件传播”讲解的是比较通俗易懂的,且有
demo
,只要运行
demo
即能理解大概。因此本人认为结合此转载篇,再了解下事件派发的一个借口
IEventDispatcher
和基类
EventDispatcher
,再熟悉下自定义
event
便可熟练掌握
flex event
了。
在转载正文之前,先补充事件传播的
3
个阶段值,使大家更易理解。
EventPhase.CAPTURING_PHASE: 1
,
捕获阶段
EventPhase.AT_TARGET: 2
,目标阶段
EventPhase.BUBBLING_PHASE: 3
,冒泡阶段
......
应为设计要求, 我需要计算String的宽度,
搜索了下网上的文章, 看到有用measureText(string)的,
可是用了下发现, 这个function得到的string大小, 不会根据字体的大小, 粗黑的变化,
始终返回同一个值, 也许是我的用法不对, 最后我没有这个方法,
改用了另外一个方法:
private function getTextWidth():int
{
var lb:Label = new Label();
lb.regenerateStyleCache( false );
var textMetrics:TextLineMetrics = lb.measureText( label );
var textWidth:int = textMetrics.width;
return textWidth;
}
如果不行, 确定 maxDisplayedLines="1" ......
Flex
引入了元数据标签的概念,大多数人都使用过的
[Bindable]
标签便是其中的
meta tag
之一,它在代码中的作用就是向编译器提供如何编译程序的信息。实际上,这些标签并没有被编译到生成的
SWF
文件中,而只是告诉编译器如何生成
SWF
文件。
adobe
官网
http://livedocs.adobe.com/flex/3/html/help.html?content=metadata_3.html详细讲解了
16种
meta
的使用,简单如下表所示。
Tag
Description
[ArrayElementType]
Defines the allowed data type of each element of an Array.
[Bindable]
Identifies a property that you can use as the source of a data
binding expression.
[DefaultProperty]
Defines the name of the default property of the component when you
use the component in an MXML file.
[Deprecated]
Marks a class or class element as deprecated so that the compiler
can recognize it and issue a warning when the element is used in an
application.
[Effect]
Defines the MXML property name for the effect.
[Embed]
Imports JPEG, GIF, PNG, SVG, a ......
之前写了《 flex 事件之理解》和《 flex meta tag 之理解》,本想是为写本文 flex 数据绑定之理解做铺垫的,谁知网上已有 flex 数据绑定之理解很好的文章,如下:
http://www.cnblogs.com/nianshi/archive/2010/05/19/1739407.html , FLEX 数据绑定 (1)
http://www.cnblogs.com/nianshi/archive/2010/05/19/1739409.html , FLEX 数据绑定 (2)
http://www.cnblogs.com/nianshi/archive/2010/05/19/1739411.html , FLEX 数据绑定 (3)
因此,已无再详片大论 flex 绑定理解之需要,但是鉴于上述 3 篇文章稍显混论,看起来不是那么通俗易懂,为此,我简单的补充了一个 demo ,并且作简单归纳总结。
1、 flex 绑定通常有 3 中实现方式,即 FLEX 数据绑定 (1) 所述的 {} 绑定、 fx : binding 和 as 代码实现 ( BindingUtils , ChangeWatcher );
2、 flex 绑定分单、双向绑定,默认情况下都是单向绑定;
3、 flex 绑定最常见的编写方式就是 [Bin ......
用到的MX标签:constraintColumns、ConstraintColumn、constraintRows、ConstraintRow
给大家说说前提情况:在做MXML布局时,要嵌套很多层级,这里面有很多问题:
1、嵌套太多层级会影响效率!
2、嵌套太多层级,代码的可读性、可维护性差!
3、嵌套太多层级是因为Canvas、Vbox、Hbox功能单一,不能满足需要,而不是必须要这样做。
好吧,来看一个MXML代码示例:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" minWidth="955" minHeight="600">
<mx:constraintColumns>
<mx:ConstraintColumn id="column1" width="250"/>
<mx:ConstraintColumn id="column2" width="100%"/>
</mx:constraintColumns>
<mx:constraintRows>
<mx:ConstraintRow id="row1" height="25"/>
<mx:ConstraintRow id="row2" height="25"/>
<mx:ConstraintRow id="row3" height="100%"/>
<mx:ConstraintRow id="row4" height="35"/>
</mx:constraintRows>
<mx:Button id="topMenuCvs" label="top ......
用到的MX标签:constraintColumns、ConstraintColumn、constraintRows、ConstraintRow
给大家说说前提情况:在做MXML布局时,要嵌套很多层级,这里面有很多问题:
1、嵌套太多层级会影响效率!
2、嵌套太多层级,代码的可读性、可维护性差!
3、嵌套太多层级是因为Canvas、Vbox、Hbox功能单一,不能满足需要,而不是必须要这样做。
好吧,来看一个MXML代码示例:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" minWidth="955" minHeight="600">
<mx:constraintColumns>
<mx:ConstraintColumn id="column1" width="250"/>
<mx:ConstraintColumn id="column2" width="100%"/>
</mx:constraintColumns>
<mx:constraintRows>
<mx:ConstraintRow id="row1" height="25"/>
<mx:ConstraintRow id="row2" height="25"/>
<mx:ConstraintRow id="row3" height="100%"/>
<mx:ConstraintRow id="row4" height="35"/>
</mx:constraintRows>
<mx:Button id="topMenuCvs" label="top ......
最近公司要做个拍卖行的项目,我被分配了“实时音视频直播及点播”的部分。我一直从事JAVA重来没研究过adobe的东西,虽然sun(现在是ORACLE了)也有JMF,但是这个东西早就暂停更新了,感觉已经与时代脱节。最后经过我们开发人员都有的刻苦专研,埋地苦干的精神终于在一个礼拜搞定了。
闲话少说,我们切入正题
开发工具及环境:
1)flash builder4
2)flash cs4
3)flash media server3.5
fms部分
fms是adobe的流媒体服务器,不过是收费的,价格大概是oracle的一半,不过还是觉得挺贵的。adobe提供控制连接数的开发人员版,除了这点具体和完全版一样。服务器的配置网上很多,大家一搜就一大把。
其中关键的是:
由于需求是不仅要提供直播,而且还能点播历史音视频。而as的NetStream的publish方法提供的录制功能是将录制的视频放在直播的同一个文件夹下,所以要需要改一下fms配置。
1)fms的dvr默认是关闭的,需要修改C:\Program Files\Adobe\Flash Media Server 3.5\applications\live\main.far里的Application.xml,将文件中的
<StreamManager>
<StreamRecord overrid ......
最近公司要做个拍卖行的项目,我被分配了“实时音视频直播及点播”的部分。我一直从事JAVA重来没研究过adobe的东西,虽然sun(现在是ORACLE了)也有JMF,但是这个东西早就暂停更新了,感觉已经与时代脱节。最后经过我们开发人员都有的刻苦专研,埋地苦干的精神终于在一个礼拜搞定了。
闲话少说,我们切入正题
开发工具及环境:
1)flash builder4
2)flash cs4
3)flash media server3.5
fms部分
fms是adobe的流媒体服务器,不过是收费的,价格大概是oracle的一半,不过还是觉得挺贵的。adobe提供控制连接数的开发人员版,除了这点具体和完全版一样。服务器的配置网上很多,大家一搜就一大把。
其中关键的是:
由于需求是不仅要提供直播,而且还能点播历史音视频。而as的NetStream的publish方法提供的录制功能是将录制的视频放在直播的同一个文件夹下,所以要需要改一下fms配置。
1)fms的dvr默认是关闭的,需要修改C:\Program Files\Adobe\Flash Media Server 3.5\applications\live\main.far里的Application.xml,将文件中的
<StreamManager>
<StreamRecord overrid ......
总记录数:792; 总页数:132; 每页6 条;
首页 上一页 [2] [3] [4] [5] 6
[7] [8] [9] [10] [11] 下一页 尾页