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的数量越来越多,而我们常用的会越来越少吗?(穆楠)

目录
相关文章
|
编译器 开发者 Windows
windows10LTSC下载与安装
windows10LTSC下载与安装
492 0
|
8月前
|
存储 算法 物联网
区块链在能源交易中的应用:打造去中心化能源市场
区块链在能源交易中的应用:打造去中心化能源市场
424 22
|
7月前
|
机器学习/深度学习 人工智能 计算机视觉
《深度剖析:一文读懂卷积神经网络中的感受野》
感受野是卷积神经网络(CNN)中关键概念,指神经元在输入数据中对应的区域大小。它影响模型对特征的捕捉能力,决定局部与全局特征的提取。单层卷积的感受野由卷积核大小、步长和填充决定;多层卷积时感受野会逐层累加扩大。合适感受野能提升模型性能,过大或过小都会影响效果。调整感受野可通过改变卷积核大小、步长或使用空洞卷积实现。深入理解感受野有助于优化CNN设计,推动AI技术发展。
252 4
|
8月前
|
JSON 数据挖掘 API
唯品会按关键字搜索 VIP 商品 API 接口的开发应用与收益
在电商蓬勃发展的今天,精准的商品搜索功能至关重要。唯品会的按关键字搜索VIP商品API接口通过高效、精准的检索,提升了用户购物体验和商家销售业绩。该接口基于RESTful架构,采用JSON格式交互,支持唯品会APP内搜索、第三方平台合作及数据分析等场景,显著提升用户活跃度与忠诚度,拓展销售渠道,增加收入,并挖掘数据驱动的商业价值,助力唯品会持续发展。
209 4
|
人工智能 BI 数据处理
【优秀python django系统案例】基于python的医院挂号管理系统,角色包括医生、患者、管理员三种
本文介绍了一个基于Python开发的医院挂号管理系统,该系统包含医生、患者、管理员三种角色,旨在优化挂号流程,提高医疗服务质量和管理效率,并通过信息化手段提升患者就医体验和医院运营决策的数据支持能力。
380 2
【优秀python django系统案例】基于python的医院挂号管理系统,角色包括医生、患者、管理员三种
|
11月前
|
机器学习/深度学习 人工智能 架构师
|
API 项目管理 调度
OpenProject 是一个基于网络的项目管理软件。其主要特点是:
OpenProject 是一个基于网络的项目管理软件。其主要特点是:
384 1
|
存储 网络协议 网络虚拟化
SRv6 基本结构
【5月更文挑战第4天】SRv6是一种网络功能指令化技术,将128位IPv6地址用于表达网络操作。它将业务需求转化为有序指令列表,由网络设备执行,实现灵活的网络业务编排和定制。
|
机器学习/深度学习 人工智能 算法
【机器学习】探究Q-Learning通过学习最优策略来解决AI序列决策问题
【机器学习】探究Q-Learning通过学习最优策略来解决AI序列决策问题
554 1
|
监控 安全 网络协议
一文看懂Socks5代理IP:优势与应用场景
Socks5代理IP因其匿名性、安全性和跨平台支持成为2024年热门选择。它支持IPv4/IPv6及多种协议,提供身份验证,降低网络延迟。适用于安全上网、突破地理限制、优化游戏流媒体体验。选择代理服务时关注速度、安全、价格和用户支持。在数字化时代,Socks5代理满足了用户对网络安全和隐私的需求。

热门文章

最新文章