注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

mie

 
 
 

日志

 
 

Flash后台播放(2)  

2011-09-15 12:29:54|  分类: 疑难杂症 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

         任何问题都有解决的方法,只要找对了思路,一切都可以很快地解决。
         此前,我们在Flash播放的问题纠缠了很久。最后,我们制定出前次提到的方法(http://zhanyonhu.blog.163.com/blog/static/16186044201181492735320/)。然而,这样的处理方法带来了新的问题。
         为了简化和Flash开发的交互,我进一步简化流程:程序需要特效时,访问HTML网页,HTML网页加载Flash并显示Flash特效。我的C++取得Flash控件元素,然后抓图并显示。于是有问题:
        (1)启动速度缓慢。启动时,需要加载HTML,HTML加载Flash,Flash准备动画资源。于是,延迟了三秒。
        (2)通知动画开始,到C++得到通知并开始抓图,这里面的延迟有200毫秒左右,导致动画抓取不全,原因是,这里是多线程的异步操作。
        (3)后台播放问题。前面提到过。

         对于(1),本人决定这样处理:HTML首先就加载Flash,在C++程序需要动画时,就调用Flash的外部导出函数,通知Flash启动动画。这样,延迟可以减小到1秒以内。
         对于(2),如果Flash直接调用原生的C++函数,而不是通过javascript解释器和HTML的external外部接口,这样的话,延迟应该可以减小到几十毫秒,基本上可以接受。
         对于(3),可以使用一些比较××的方法。比如,不抓图了,直接把flash的控件的父窗口设为我的C++程序窗口,然后调整一下大小。或者,干脆进行窗口叠加覆盖。
         如果这么处理,问题基本上是可以解决的了。不过,如此处理,就赔本儿了(时间+脑细胞)。

参考:

Flash CS3 文档

示例:将外部 API 用于 ActiveX 容器

http://livedocs.adobe.com/flash/9.0_cn/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00000346.html#wp850727

 

经过改进后的效果:

(1)快了很多。

(2)保留原先的js调用。

(3)使用子窗口的方法,似乎有点,,,解决了就行。明天小改一下就OK了。

 

最终结果:

经过前面的努力,终于实现了本人想要的效果。hoho,so beautiful !

——唯一可惜的是,里面的背景图片没法动态加载,应该也可以,只是不知道方法。


By:章永辉

  评论这张
 
阅读(546)| 评论(1)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016