`
duker
  • 浏览: 105901 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

flex 中VideoDisplay 的小陷阱

阅读更多
Flex 的VideoDisplay 控件对于创建视频播放程序非常快捷,方便,但我在使用过程中遇到了一个小陷阱,经过翻看VideoDisplay 源代码,最后总算搞清楚问题所在了.
VideoDisplay 有一个ready 事件,按照文档的说法,ready 事件发生时,说明flv文件已经就绪,可以播放了,但实践中发现,在ready事件中获取totalTime 属性时,这个值有时正常,有时是-1,尤其是网络传输速度慢时更是如此,经过反复试验仍不能解决,最后只能查看VideoDisplay源码,发现文件长度的获得是在metadataReceived 这个事件中,totalTime 的计算依据是文件长度,如果文件长度未知,totalTime就返回-1,而metadataReceived有时发生在ready事件之前,有时发生在ready事件之后,导致在ready中获得的totalTime时而正常,时而是-1.所以为了保证能够正确获得totalTime,需要同时处理metadataReceived事件.
如果你的firefox上装有firebug,可以看这里: http://dukerr1.googlepages.com/app.html ,通过firebug console,并反复刷新,就可以看到ready事件和metadataReceived事件发生的顺序不确定.
(这个播放器使用了flex的preloader定制机制,使用一个静态位图做preloader(也可以使用swf);使用flex 的skin机制定制了播放控制条;扩展了Slider control,在Slider上增加了下载进度显示)
3
0
分享到:
评论
6 楼 kitewhere 2011-08-17  
即使是读取本地flv也会有此问题 看来要判断下ready和metadataReceived的发生的顺序,那个后发生就把读totaltime的代码放哪里
ps:videoplayer还有什么其他bug没
5 楼 javaEEdevelop 2011-03-15  
好的,有点帮助,谢了
4 楼 jerry_chen 2008-08-26  
您好,我在调试videodisplay的时候内存越小越容易遇到totaltime为-1的情况,您所要处理metadataReceived事件,请问该怎么处理呢?
3 楼 duker 2008-03-05  
harry9888  不好意思,这段时间比较忙,一直没上来,你的这个问题我想应该用事件的方式来解决,让子组件派发一个自定义事件,然后监听者负责改变它们自己的状态.
或者用将这些操作放到 cairngorm的command 对象中.(其实cairngorm的command也是事件驱动)
2 楼 harry9888 2008-01-20  
或者这个操作就尽量不要写在这个子对象中
1 楼 harry9888 2008-01-20  
问个问题:

我在子组件中要操作父组件的状态,使用parentDocument.parentDocument.currentState

但是如果这个子组件用于其他地方,父组件的级别就不一定一样了,有没有其他的方式操作父对象呢?

相关推荐

    flex中videodisplay的应用

    flex中视频播放组件的应用,即videodisplay组件的应用,这是一个具体应用的列子。

    flex 视频播放器,应用videodisplay

    本教程将深入探讨如何使用Flex中的`VideoDisplay`组件创建一个自定义的视频播放器,并实现播放位置控制、工具栏样式定制以及与JavaScript的数据交互。 一、`VideoDisplay`组件 `VideoDisplay`是Flex提供的用于展示...

    使用FLEX3创建一个简单的FLV播放器.rar

    在本文中,我们将深入探讨如何使用Adobe Flex 3框架创建一个基本的FLV(Flash Video)播放器。Flex 3是ActionScript 3.0的一个强大的开发工具,它提供了丰富的用户界面组件和强大的数据服务支持,使开发者可以构建富...

    FLEX中文帮助flex中文帮助

    flex中文帮助flex中文帮助flex中文帮助flex中文帮助

    Flex中如何利用videoPlayer属性和mx_internal命名空间,清除VideoDisplay控件内容

    要清除VideoDisplay中的视频内容,我们需要访问videoPlayer属性并调用其clear方法。代码示例如下: ```actionscript import mx.core.mx_internal; use namespace mx_internal; var videoDisplay:...

    flex 官方文档 中文教程

    Flex提供了强大的调试工具,如Flex Builder的集成开发环境(IDE),以及Flex SDK中的命令行编译器,帮助开发者定位和修复问题。 12. **国际化和本地化** Flex支持应用的国际化和本地化,允许开发者创建适应多种...

    Flex 两个小例子 Flex两个小例子

    在这个"Flex两个小例子"的资源包中,我们可以推测包含了一些使用Flex开发的示例项目。 首先,让我们详细了解一下Flex的核心组成部分: 1. **Flex SDK**:这是一个开源的开发工具包,包含了编译Flex应用程序所需的...

    Flex中文教程中文文档

    Flex是Adobe公司开发的一种用于构建富互联网应用程序(RIA)的开放源代码框架。...通过这个教程,读者不仅可以理解Flex的基本概念,还能掌握实际开发中的技巧和最佳实践,从而成为一名熟练的Flex开发者。

    Flex中文帮助 学习Flex的好资料

    10. **最佳实践和设计模式**:学习Flex的过程中,了解和应用设计模式,如MVC(模型-视图-控制器)模式,可以帮助编写出可维护、可扩展的代码。 通过这份"Flex中文帮助"资料,你可以系统地学习Flex的基础概念、编程...

    flex中文教程.pdf

    ActionScript 3.0则是Flex中的编程语言,提供了面向对象的编程能力,使得开发者可以实现复杂的业务逻辑。 二、Flex SDK与Flex Builder Flex SDK是Flex开发的基础,包含了编译器、库和命令行工具,允许开发者在任何...

    flex加密解密小例子

    这个“flex加密解密小例子”是关于如何在Flex项目中实现数据的安全性,特别是在传输和存储过程中防止数据被非法访问或篡改。让我们深入探讨Flex中的加密和解密技术。 1. **Flex基础**:Flex使用MXML和ActionScript ...

    FLEX中文教程+实例

    Flex中的数据绑定机制允许将UI组件的属性直接绑定到应用程序的数据模型,当数据模型发生变化时,UI会自动更新,反之亦然,简化了界面和数据间的交互。 六、Flex事件模型 Flex事件模型基于观察者模式,事件是组件间...

    《Flex_help》,Flex中文帮助

    在本压缩包"Flex_help"中,你将找到全面的Flex中文帮助文档,这对于正在学习或使用Flex的开发者来说是一份宝贵的资源。 Flex的主要组件包括Flex Builder(现已更名为Flash Builder)、Flex SDK以及Flex Framework。...

    微信小程序+Flex布局示例源代码

    在这个"微信小程序+Flex布局示例源代码"中,我们将深入探讨Flex布局在微信小程序中的应用。 Flex布局,全称为Flexible Box布局,是CSS3中的一种新的布局模式,旨在解决传统盒模型在处理复杂或响应式布局时的困难。...

    微信小程序flex布局demo

    在微信小程序中,开发者可以利用CSS布局方式之一的Flex布局来实现复杂的页面设计,提高用户体验。本教程将深入探讨微信小程序中的Flex布局。 一、Flex布局基础 1. Flex容器:在CSS中,一个元素如果设置了`display:...

    flex中文帮助.rar

    通过“flex中文帮助”压缩包中的资料,初学者可以逐步了解和掌握这些基础知识,通过实例练习来巩固理论知识,为未来深入的Flex开发打下坚实的基础。每个章节都可能涉及上述的一个或多个知识点,通过实践和理解,学习...

    Flex中文帮助文档

    本Flex中文帮助文档旨在为初学者提供全面且深入的指导,帮助他们掌握Flex的基本概念、核心组件以及实际开发中的运用。 1. **Flex基础**:Flex是一个强大的开发环境,它提供了丰富的UI组件库和数据绑定机制,让...

    flex中文教程伴有flexbuilder

    这将帮助你理解Flex在RIA开发中的重要性。 2. **ActionScript与MXML**:ActionScript是Flex的主要编程语言,而MXML则是一种用于构建用户界面的标记语言。教程会深入解释这两种语言的语法、特点以及它们如何协同工作...

    Flex4 中文API

    在Flex4中,ActionScript3(AS3)是主要的编程语言,与Flex SDK紧密集成。AS3是ECMAScript的一个子集,拥有更强大的面向对象特性,如类、接口、包和命名空间,这使得它在构建复杂应用程序时更为高效。Flex4中文API...

Global site tag (gtag.js) - Google Analytics