包 | spark.transitions |
类 | public class ViewTransitionBase |
继承 | ViewTransitionBase EventDispatcher Object |
子类 | CrossFadeViewTransition, FlipViewTransition, SlideViewTransition, ZoomViewTransition |
语言版本: | ActionScript 3.0 |
产品版本: | Flex 4.5 |
运行时版本: | AIR 2.5 |
初始化视图过渡时,所属的视图导航器将 startView
和 endView
属性设置为过渡设置动画的视图。navigator
属性设置为视图导航器。
过渡的生命周期如下所示:
- 过渡以
captureStartValues()
方法开始。调用此方法时,导航器当前处于开始状态。此时,过渡应捕获所需的所有开始值或位图。 - 针对暂挂视图执行了验证通过,且调用了
captureEndValues()
方法。此时,过渡从暂挂视图中捕获所有属性或位图表示。 - 之后会调用
prepareForPlay()
方法,来允许过渡执行进一步的准备(例如准备 Spark 效果序列,或在显示列表中定位瞬态元素)。 - 在最终验证通过(如果需要)后,导航器将调用
play()
方法来执行实际的过渡。 - 在任一动画开始前,将先调度
start
事件。 - 过渡完成时,会调度
end
事件。
注意:在 ActionScript 中创建并配置视图过渡。您无法在 MXML 中创建这些视图过渡。
属性 | 由以下参数定义 | ||
---|---|---|---|
constructor : Object
对类对象或给定对象实例的构造函数的引用。 | Object | ||
duration : Number
过渡的持续时间(以毫秒为单位)。 | ViewTransitionBase | ||
easer : IEaser
此过渡的缓动行为。 | ViewTransitionBase | ||
endView : View
导航器正在过渡到的视图,由所属的 ViewNavigator 对象设置。 | ViewTransitionBase | ||
navigator : ViewNavigator
对所属的 ViewNavigator 实例的引用,由所属的 ViewNavigator 设置。 | ViewTransitionBase | ||
startView : View
视图导航器的当前活动视图,由所属的视图导航器设置。 | ViewTransitionBase | ||
suspendBackgroundProcessing : Boolean
设置为 true 时,会在过渡播放前调用 UIComponent.suspendBackgroundProcessing() 方法。 | ViewTransitionBase | ||
transitionControlsWithContent : Boolean
设置为 true 时,主视图过渡用于对视图导航器进行完整过渡,包含操作栏。 | ViewTransitionBase |
方法 | 由以下参数定义 | ||
---|---|---|---|
构造函数。 | ViewTransitionBase | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。 | EventDispatcher | ||
在过渡的准备阶段由 ViewNavigator 调用。 | ViewTransitionBase | ||
在过渡的准备阶段由 ViewNavigator 调用。 | ViewTransitionBase | ||
将事件调度到事件流中。 | EventDispatcher | ||
检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。 | EventDispatcher | ||
表示对象是否已经定义了指定的属性。 | Object | ||
表示 Object 类的实例是否在指定为参数的对象的原型链中。 | Object | ||
在过渡应开始设置动画时由 ViewNavigator 调用。 | ViewTransitionBase | ||
在过渡的准备阶段由 ViewNavigator 调用。 | ViewTransitionBase | ||
表示指定的属性是否存在、是否可枚举。 | Object | ||
从 EventDispatcher 对象中删除侦听器。 | EventDispatcher | ||
设置循环操作动态属性的可用性。 | Object | ||
返回此对象的字符串表示形式,其格式设置遵守区域设置特定的约定。 | Object | ||
返回指定对象的字符串表示形式。 | Object | ||
返回指定对象的原始值。 | Object | ||
检查是否用此 EventDispatcher 对象或其任何祖代为指定事件类型注册了事件侦听器。 | EventDispatcher |
方法 | 由以下参数定义 | ||
---|---|---|---|
确定 Flex 是否可以针对视图的操作栏或选项卡栏内容独立执行过渡。 | ViewTransitionBase | ||
过渡完成后调用。 | ViewTransitionBase | ||
由默认的 prepareForPlay() 实现调用,该方法用于创建在过渡开始时针对操作栏进行播放的 Spark 效果。 | ViewTransitionBase | ||
由默认的 prepareForPlay() 实现调用,该方法用于创建用来过渡整个导航器(包括控件栏内容)而进行播放的 Spark 效果。 | ViewTransitionBase | ||
由默认的 prepareForPlay() 实现调用,该方法用于创建在过渡开始时针对选项卡栏进行播放的 Spark 效果。 | ViewTransitionBase | ||
由默认的 prepareForPlay() 实现调用,该方法用于创建在过渡开始时针对当前和下一视图进行播放的 Spark 效果。 | ViewTransitionBase | ||
用于呈示准备过渡时屏幕上的元素的快照。 | ViewTransitionBase | ||
由过渡调用以指示过渡已完成。 | ViewTransitionBase |
事件 | 摘要 | 由以下参数定义 | ||
---|---|---|---|---|
[广播事件] Flash Player 或 AIR 应用程序获得操作系统焦点并变为活动状态时将调度此事件。 | EventDispatcher | |||
[广播事件] Flash Player 或 AIR 应用程序失去操作系统焦点并变为非活动状态时将调度此事件。 | EventDispatcher | |||
在过渡完成时调度。 | ViewTransitionBase | |||
在开始过渡时调度。 | ViewTransitionBase |
duration | 属性 |
easer | 属性 |
endView | 属性 |
navigator | 属性 |
navigator:ViewNavigator
语言版本: | ActionScript 3.0 |
产品版本: | Flex 4.5 |
运行时版本: | AIR 2.5 |
对所属的 ViewNavigator 实例的引用,由所属的 ViewNavigator 设置。
默认值为 null。
实现
public function get navigator():ViewNavigator
public function set navigator(value:ViewNavigator):void
startView | 属性 |
suspendBackgroundProcessing | 属性 |
suspendBackgroundProcessing:Boolean
语言版本: | ActionScript 3.0 |
产品版本: | Flex 4.5 |
运行时版本: | AIR 2.5 |
设置为 true
时,会在过渡播放前调用 UIComponent.suspendBackgroundProcessing()
方法。这禁用了 Flex 的布局管理器,从而提高了性能。在完成过渡时,布局管理器功能通过调用 UIComponent.resumeBackgroundProcessing()
方法得到恢复。
默认值为 false。
实现
public function get suspendBackgroundProcessing():Boolean
public function set suspendBackgroundProcessing(value:Boolean):void
相关 API 元素
transitionControlsWithContent | 属性 |
transitionControlsWithContent:Boolean
语言版本: | ActionScript 3.0 |
产品版本: | Flex 4.5 |
运行时版本: | AIR 2.5 |
设置为 true
时,主视图过渡用于对视图导航器进行完整过渡,包含操作栏。不会执行操作栏的特定过渡。因为选项卡栏与整个应用程序相关联,而不是与某一视图关联,所以视图过渡不影响该栏。
请注意,即使设置为 false
时,仍会出现过渡操作栏不可行的情况。例如,操作栏不出现在两个视图之一中时,或如果操作栏更改大小。
默认值为 false。
实现
public function get transitionControlsWithContent():Boolean
public function set transitionControlsWithContent(value:Boolean):void
ViewTransitionBase | () | 构造函数 |
public function ViewTransitionBase()
语言版本: | ActionScript 3.0 |
产品版本: | Flex 4.5 |
运行时版本: | AIR 2.5 |
构造函数。
canTransitionControlBarContent | () | 方法 |
protected function canTransitionControlBarContent():Boolean
语言版本: | ActionScript 3.0 |
产品版本: | Flex 4.5 |
运行时版本: | AIR 2.5 |
确定 Flex 是否可以针对视图的操作栏或选项卡栏内容独立执行过渡。
Flex 在以下情况下无法针对控制栏独立执行过渡:
- 如果包含的视图导航器是 TabbedViewNavigator 且其选项卡栏的可见性在视图之间发生变化。
- 如果视图导航器的
overlayControls
属性值在视图之间发生变化。 - 如果操作栏的大小或可见性在视图之间发生变化。
Boolean — 如果 Flex 确定视图之间的控制栏在某些方面不兼容,则为 false 。
|
captureEndValues | () | 方法 |
public function captureEndValues():void
语言版本: | ActionScript 3.0 |
产品版本: | Flex 4.5 |
运行时版本: | AIR 2.5 |
在过渡的准备阶段由 ViewNavigator 调用。在新视图已经完全实现并经过验证,而且操作栏与选项卡栏内容能够反应新视图的状态时,将调用该方法。过渡就是在此时从暂挂的视图中可以捕获任意所需的值。此外,反映新视图、选项卡栏或操作栏的状态的任意位图都应根据动画的需要来捕获。
captureStartValues | () | 方法 |
public function captureStartValues():void
语言版本: | ActionScript 3.0 |
产品版本: | Flex 4.5 |
运行时版本: | AIR 2.5 |
在过渡的准备阶段由 ViewNavigator 调用。在新视图已经完全实现并经过验证,而且操作栏与选项卡栏内容能够反应新视图的状态时,将调用该方法。过渡可以使用该方法从暂挂的视图中捕获所需的任意值。反映新视图、选项卡栏或操作栏的状态的任意位图都应根据动画的需要来捕获。
cleanUp | () | 方法 |
protected function cleanUp():void
语言版本: | ActionScript 3.0 |
产品版本: | Flex 4.5 |
运行时版本: | AIR 2.5 |
过渡完成后调用。该方法用于发布任何由过渡使用的引用和临时构造。
createActionBarEffect | () | 方法 |
createConsolidatedEffect | () | 方法 |
createTabBarEffect | () | 方法 |
createViewEffect | () | 方法 |
getSnapshot | () | 方法 |
protected function getSnapshot(target:UIComponent, padding:int = 4, globalPosition:Point = null):BitmapImage
语言版本: | ActionScript 3.0 |
产品版本: | Flex 4.5 |
运行时版本: | AIR 2.5 |
用于呈示准备过渡时屏幕上的元素的快照。位图以 BitmapImage 对象的形式返回。
BitmapImage 在目标的父代坐标空间中 - 如果链接至相同父代,则它正好重叠目标。移动至其它父代时,请确保调整 BitmapImage 的转换以正确说明坐标空间中的更改。globalPosition
参数的更新值可用于此。
参数
target:UIComponent — 显示要捕获的对象。
| |
padding:int (default = 4 ) — 要在 BitmapImage 对象中包含的对象周围的内边距。
| |
globalPosition:Point (default = null ) — 非 null 时,将使用 BitmapImage 在全局坐标中的原点更新 globalPosition 。移动至其它坐标空间时,此值可用于调整快照位置,使其在屏幕上的全局位置不会改变。
|
BitmapImage — 代表目标的 BitmapImage 对象。
|
play | () | 方法 |
public function play():void
语言版本: | ActionScript 3.0 |
产品版本: | Flex 4.5 |
运行时版本: | AIR 2.5 |
在过渡应开始设置动画时由 ViewNavigator 调用。此时,过渡应调度 start
事件。
prepareForPlay | () | 方法 |
public function prepareForPlay():void
语言版本: | ActionScript 3.0 |
产品版本: | Flex 4.5 |
运行时版本: | AIR 2.5 |
在过渡的准备阶段由 ViewNavigator 调用。该方法给过渡创建和配置基础 IEffect 实例的机会,或者给过渡将任意瞬态元素添加至显示列表的机会。示例瞬态元素包含位图占位符、过渡期间所需的临时容器,以及其它元素。若有需要,最终验证通过发生在 play()
方法调用之前。
如果确定可以启动标准过渡,说明可以从视图中单独过渡控件栏,该方法的默认实现会构造单独的 Parallel 效果,用于包装视图过渡、操作栏过渡和选项卡栏过渡的各个效果序列。该方法使用方法:createActionBarEffect()
、createTabBarEffect()
和 createViewEffect()
。
如果将 transitionControlsWithContent
设置为 true
,或确定控件栏无法单独过渡,将创建一个单独的效果来对导航器进行完整过渡。在这种情况下,仅调用 createConsolidatedEffect()
。
transitionComplete | () | 方法 |
protected function transitionComplete():void
语言版本: | ActionScript 3.0 |
产品版本: | Flex 4.5 |
运行时版本: | AIR 2.5 |
由过渡调用以指示过渡已完成。该方法调度 end
事件。
transitionEnd | 事件 |
mx.events.FlexEvent
属性 FlexEvent.type =
mx.events.FlexEvent.TRANSITION_START
语言版本: | ActionScript 3.0 |
产品版本: | Flex 4.5 |
运行时版本: | AIR 2.5 |
在过渡完成时调度。
FlexEvent.TRANSITION_START
常量为 transitionStart
事件定义事件对象的 type
属性的值。
仅当一个或多个相关侦听器附加到调度对象时,才会调度此事件。
事件对象的属性有下列值:
属性 | 值 |
---|---|
bubbles | false |
cancelable | false |
currentTarget | 用于定义处理该事件的事件侦听器的对象。例如,如果您使用 myButton.addEventListener() 注册某个事件侦听器,则 myButton 为 currentTarget 的值。 |
target | 调度该事件的 Object;它不一定是侦听该事件的 Object。使用 currentTarget 属性始终可以访问侦听事件的 Object。 |
transitionStart | 事件 |
mx.events.FlexEvent
属性 FlexEvent.type =
mx.events.FlexEvent.TRANSITION_START
语言版本: | ActionScript 3.0 |
产品版本: | Flex 4.5 |
运行时版本: | AIR 2.5 |
在开始过渡时调度。
FlexEvent.TRANSITION_START
常量为 transitionStart
事件定义事件对象的 type
属性的值。
仅当一个或多个相关侦听器附加到调度对象时,才会调度此事件。
事件对象的属性有下列值:
属性 | 值 |
---|---|
bubbles | false |
cancelable | false |
currentTarget | 用于定义处理该事件的事件侦听器的对象。例如,如果您使用 myButton.addEventListener() 注册某个事件侦听器,则 myButton 为 currentTarget 的值。 |
target | 调度该事件的 Object;它不一定是侦听该事件的 Object。使用 currentTarget 属性始终可以访问侦听事件的 Object。 |
Tue Jun 12 2018, 11:04 AM Z