Flash 应用之我见

简介: 如果浏览器还在洪荒年代,却只有 Flash 可用的话,你会拿 Flash 做什么呢?在我的眼中,Flash 依然是高级的 ActiveX 控件,当然可以做很多的事情,从而补浏览器不足。例如: 视频播放器。

如果浏览器还在洪荒年代,却只有 Flash 可用的话,你会拿 Flash 做什么呢?在我的眼中,Flash 依然是高级的 ActiveX 控件,当然可以做很多的事情,从而补浏览器不足。例如:

  1. 视频播放器。到现在还是 Flash 占视频播放器主流的位置(PC);
  2. Socket 通讯,比 XHR 更高级的、可全双工的通讯模式;
  3. 播放一段 Audio,比如 mp3,让网页具备音效;
  4. 文件上传。用 Flash 做很简单,包括进度条的都轻而易举;
  5. “复制”的按钮,这小小的功能是为懒人而设的;
  6. 比 Cookies 更多客户端存储;
  7. 有一个对 JS 程序员的好消息,就是你想保护你的 JS 代码的话,用 SWF 加多一层也不错。
实际上,与其说 Flash(AS) 弥补浏览器的不足,不如说突破了浏览器许多的限制,尤其就是对浏览器安全模型冲着来的。不过 Flash 有一点好,就是兼容性比较理想,除了自身版本无可厚非地要兼容之外,基本没有像浏览器那样“蛋疼”的跨浏览器问题,做到“一次编写,处处运行”。

保存该文章时,碰巧遇见 CSDN 推荐了 《专访熊攀峰:HTML5时代 Flash仍是座宝藏》,小弟对里面的某些观点也是赞同的。

附一个小 DEMO,说明 JS 与 AS 交互接口:

Flash 拷贝字符串到剪贴板
JS无法做到访问DOM之外的内容,也就无法做到拷贝字符串到系统剪贴板,这时候只能用Flash去实现,个人感觉别无他法。

Flash操作系统剪贴板,知识点有两处。

1 » System.setClipboard(str) 拷贝字符串到系统剪贴板
2 » ExternalInterface.call(func, param...) AS调用JS函数

下面是Flex代码:

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
  xmlns:s="library://ns.adobe.com/flex/spark"
  xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="16" minHeight="16">
  <fx:Script>
    <![CDATA[
    public function copyToClipboard():void {
        var text:String = ExternalInterface.call('Copy.clipBoard');
        var status:Boolean = false;
    
        if (text) {
            System.setClipboard(text);
            status = true;
        }

        ExternalInterface.call('Copy.callback', status ? text : false);
    }
    ]]>
  </fx:Script>
  <mx:Image id="copy" source="@Embed('../asserts/copy.gif')"
    click="copyToClipboard()" useHandCursor="true" buttonMode="true" />
</s:Application>
编译处理的swf文件名字为clipboard.swf。在下面的HTML中调用。
<div class="row">
    <input id="clippy" type="text" />
    <object width="16" align="middle" height="16"
        id="clipboard" name="clipboard"
        type="application/x-shockwave-flash" data="clipboard.swf">
        <param name="quality" value="high">
        <param name="bgcolor" value="#ffffff">
        <param name="allowscriptaccess" value="sameDomain">
        <param name="allowfullscreen" value="true">
    </object>
</div>
<script>
var Copy = {};
Copy['clipBoard'] = function() {
    return document.getElementById('clippy').value;
}
Copy['callback'] = function(status) {
    alert(!!status ? status : 'Wrong');            
}
</script>

附二:《Adobe驳Flash消亡论:重点放在页游开发》

2012年7月13日 网易科技报道

日前Adobe官方博客发布了一条旗下Flash Player播放器停止为Android更新的消息,因为无法直接进入iOS平台,Android又有着巨大的装机量,这一消息公布后引起了媒体的众多猜测,“Html5完胜”、“Flash退出移动领域“等消息此起彼伏。

Adobe是否真的放弃了Flash?HTML5又能否独立承担网络多媒体的发展?Adobe高管日前在接受网易科的采访时,给出了与坊间说法截然不同的答案。

Flash的未来

大多数普通用户接触Adobe产品,一是Photoshop,二是Flash Player,前者以强大的图片处理功能以及引申出的娱乐恶搞著称;后者以高CPU能耗、低效率、但又不得不用而闻名。

事实上,尽管Flash Player用户群广泛,但仅算得上Flash平台上的“外壳”而已,该平台真正的核心包括IDE(集成开发环境)Flash软件、Flex开发框架与AS脚本语言等,网络上大多数的矢量动画、多媒体网站都在Flash平台完成。

不为Android开发Player是否意味着退出移动领域呢?Adobe创意部门亚太区专业讲师Paul Burnett日前在接受网易科技采访时阐述的观点则正解释了这点,他认为,Flash最大的成功之处在于“可做的事情远远超越浏览器端”,其未来发展方向有两方面,一是网页游戏,二是DRM数字版权管理,前者将越来越多的应用在移动终端。

Paul解释称,尽管HTML5和CSS3技术进步明显,甚至可以取代Flash进行视频播放、网页动画等工作,但都局限在浏览器前端,Flash未来发展已经定位在网页游戏开发领域,“以3D高端网游为主的开发工作是HTML5无法做到的”,他称,“在DRM领域,也只有Flash可以做到”。

在最新发布的Flash CS6中,软件也大幅升级了代码管理,3D转换、视频集成等功能。

这意味着,Flash在HTML5的快速发展下,将逐步放弃受众较广的播放(浏览器插件)平台,转而集中在开发领域,其源文件通过收购的PhoneGap可以直接转为HTML5跨平台发布。可以预见,终端终端将会出现更多由Flash开发的应用,这也Paul一直在强调“HTML5不是挑战而是机遇”的原因。

可以说,Flash从未退出,只是用更擅长的方式与移动领域紧密结合。

移动领域的野心

2011年10月,Adobe宣布收购PhoneGap,后者是一个能将网页快速转换为APP的开源平台,这意味着Dreamweaver等网页工具可直接开发跨平台应用,这也是CS6产品线重要卖点之一。

Paul介绍,与锁定游戏领域的Flash不同,PhoneGap的应用目标是资讯型APP,Adobe还承诺将保持该平台一直开源。

除了的移动产品开发外,Adobe自身的软件也在一步步App化。

在4月份CS6系列套件的发布会现场,Adobe曾表示未来所有旗下的软件都将发布移动版本,目前的进度是已经完成了6个软件的Android移植,其中3个也同时拥有iOS版本。

与游戏和应用软件相比,设计软件因为需要精确定位和大量快捷键,对鼠标键盘等外设的依赖更为严重,即使开发出移动版本,多数设计师和开发者也不会将其视为主要工具。

对此,Adobe将APP定位为辅助工具,Paul举例称,“在咖啡馆使用iPad进行草图创作后,回到家后可以直接在云端打开保存的文件用PC继续完成刚才的工作”。

“云操作的方式不仅限于的图片,体积庞大的视频也将能在PC与iPad上实现远程剪辑”,Adobe过段时间将发布该方案,Paul透露。

软件的融合之道

“也许10年之后只有一个叫Adobe的软件”。当网易科技问及软件行业的融合趋势时,Paul如是说。

与科技企业的发展轨迹一样,一条路走到黑未必与“专注、成功”等词汇划等号,企业间并购与软件间的融合有着相似之处。

以腾讯QQ为例,从10几年单纯的IM通讯工具,到逐步发展为结合大量桌面常用功能并在不断延伸的平台型产品,正是一条“走别人的路,让别人无路可走 ”的模式。

“融合”是否是所有软件的发展道路?Paul称,Adobe目前正在考虑是否将旗下的四大系列套件进行重新部署,这意味着将颠覆用户对原有产品的认识,“能否实现的关键仍是用户的接受度”。

可以看到的是,在最新的Photoshop CS6中已经加入了视频编辑功能,随着硬件与网络的提升,软件的融合趋势或将很快到来。

软件及APP的数量越来越多,而我们常用的会越来越少吗?(穆楠)

目录
相关文章
|
3月前
|
安全 架构师 数据挖掘
电商领域 Flash Sale 的设计架构
电商领域 Flash Sale 的设计架构
29 0
|
Web App开发 移动开发 编解码
没有Flash如何做直播?
有些人呐,真是不见棺材不落泪,N(&gt;=3)年前Adobe官宣了2020年底就不支持Flash了,最近发现非常多的朋友,到了真正完全不能用时,才考虑如何逃生,在群里一顿狂问“没有Flash了怎么播放RTMP”,“该选HTTP-FLV还是WebRTC”,“用什么播放器播HTTP-FLV”。 本文只发一次,完整解决方案再啰嗦一遍,恕我不在群里回答这种问题了,自己花时间好好看吧,身为搞直播的研发工程师,总不能火烧了眉毛才开始想办法吧,各位耗子尾汁吧。
439 0
没有Flash如何做直播?
|
Web App开发 前端开发 Java