扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
Flash Player 是一款能够播放小又快速的多媒体动画,以及交互式的动画、飞行标志和用macromedia flash做出的图像。这个播放器非常小,只需花一点点时间下载,对于在体验网页上的多媒体效果是个很好的开始。
创新互联于2013年成立,是专业互联网技术服务公司,拥有项目成都做网站、网站制作网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元太仓做网站,已为上家服务,为太仓各地企业和个人服务,联系电话:028-86922220
Flash也支持高品质的mp3音频流、文字输入字段、交互式接口等等很多东西。这个最新版本可以观看所有的flash格式。若你要观看网页上的多媒体内容,flash player几乎是网络上的标准。为此播放器所制作的动画或图像十分常见。
Flash广泛用于创建吸引人的应用程序,它们包含丰富的视频、声音、图形和动画。可以在Flash中创建原始内容或者从其它Adobe应用程序(如Photoshop或illustrator)导入它们,快速设计简单的动画,以及使用Adobe ActionScript 3.0开发高级的交互式项目。
设计人员和开发人员可使用它来创建演示文稿、应用程序和其它允许用户交互的内容。Flash可以包含简单的动画、视频内容、复杂演示文稿和应用
扩展资料:
Flash的补间动画有以下三种:
1、动作补间动画
动作补间动画是Flash中非常重要的动画表现形式之一,在Flash中制作动作补间动画的对象必须是“元件”或“组成”对象。
基本概念:在一个关键帧上放置一个元件,然后 在另一个关键帧上改变该元件的大小、颜色、位置、透明度等,Flash根据两者之间帧的值自动所创建的动画,被称为动作补间动画。
2、形状补间动画
所谓的形状补间动画,实际上是由一种对象变换成另一个对象,而该过程只需要用户提供两个分别包含变形前和变形后对象的关键帧,中间过程将由Flash自动完成。
基本概念:在一个关键帧中绘制一个形状,然后在另一个关键帧中更改该形状或绘制另一个形状,Flash根据两者之间帧的值或形状来创建的动画称为“形状补间动画”。形状补间动画可以实现两个图形之间颜色、形状、大小、位置的相互变化,其变形的灵活性介于逐帧动画和动作补间动画之间,使用的元素多为鼠标或压感笔绘制出的形状。
3、逐帧动画
逐帧动画是一种常见的动画形式,它的原理是在“连续的关键帧”中分解动画动作,也就是每一帧中的内容不同,连续播放形成动画。
基本概念:在时间帧上逐帧绘制帧内容称为逐帧动画,由于是一帧一帧地画,所以逐帧动画具有非常大的灵活性,几乎可以表现任何想表现的内容。
在Flash中将JPG、PNG等格式的静态图片连续导入到Flash中,就会建立一段逐帧动画。也可以用鼠标或压感笔在场景中一帧帧地画出帧内容,还可以用文字作为帧中的元件,实现文字跳跃、旋转等特效。
参考资料来源:百度百科-Flash
可能是安装有SVN导致的版本不致,解决办法:
发现出现了问号,意思是unversioned。执行commit命令。右击项目-》Team-》提交
提交后,项目右下方的小图标变成黄色的小瓶子,说明eclipse里面项目的版本和服务器里面项目的版本一致。如图:
简单的,照一张雪花的动态图片,做为html的背景
复杂点,用html5 canvas做个动画
首先大家需要了解DCloud的产品,包括:
HBuilder:快速编码、调试、打包的IDE。它可以开发各种HTML5类程序,pc网站或app都可以开发,前端常见的less、sass等程序也可以开发。还可以通过插件开发php等语言。
5+ Runtime:基于webview的增强runtime,扩展了大量的js api,打通原生api和js api的桥梁。
5+ Runtime包括2部分,HTML5plus规范和Native.js。体验该产品请点这里下载手机demo
相比于APICloud的客户端,5+Runtime的能力更强大、开放性更好。
mui:一个开源、适用于手机App的、高性能前端框架。在App开发中是属于可选但推荐使用的框架。mui大部分基于HTML5实现,一些HTML5实现起来体验不好的地方,会调用5+ runtime的原生扩展能力实现。同时mui也可用于开发手机浏览器web app或微信app。体验该产品请点这里下载手机demo
更多了解这3个产品,请仔细阅读:
* DCloud产品概述
* mui概述:从本文中大家可以了解mui的设计理念,理解mui仅偏重ui组件、不封装各种util方法的“有所为、有所不为”的思想;
然后大家应该仔细阅读如下这篇产品设计对比文章:
* APICloud产品与DCloud深度对比分析:大家可从本文中了解APICloud产品和DCoud产品的深层次差异;
了解一下基础概念后,接下来从APICloud开发者的既有认知角度出发,介绍从APICloud向DCloud技术迁移的注意事项。
标准H5部分可直接迁移
所有基于标准HTML5开发的js、css、html,两个平台一致,可无缝迁移;所有基于H5封装的第三方组件(注意这里是第三方H5组件,不是APICloud官方封装的标准组件),均可平滑迁移;
扩展API对象--UI部分
域
APICloud的api都是以api.开头,是其公司的私有api。
DCloud的5+ runtime,命名以plus.开头;
DCloud的mui前端框架的api以mui.开头。
举个例子,打开窗口,APICloud是api.OpenWin;5+是plus.webview.open;mui是mui.openWindow。
当然mui.openWindow也是对plus.webview.open的一种封装,并且在里面处理了各种常见业务,比如显示/关闭waiting雪花。
窗口系统
两家的窗口都是基于原生的webview的,封装的命名略有不同;
APICloud在api命名层面就区分主窗口和子窗口,分别封装了api.OpenWin和api.OpenFrame两个方法;
而DCloud的5+ runtime是统一的plus.webview对象处理;通过plus.webview.create方法可创建webview,在该方法中通过参数控制webview显示位置;如果是要把一个子窗口嵌入父窗口,使用webview对象的append方法。
mui为了简化书写,封装了mui.openWindow方法,通过该方法可以创建并显示webview对象;通过mui.init方法中的subpages参数,可以创建子webview;
APICloud特意封装了api.openSlidLayout、api.openSlidPane等方法来实现侧滑导航;
mui的侧滑实现更为自由,就是滑动一个webview或一个div,不需要单独的方法。
webview模式:移动整个webview;
div模式:移动div区域;
每种模式下又有不同的动画效果,主要有3类:
主窗口不动、菜单移动;
菜单不动、主窗口移动;
主窗口、菜单同时移动;
mui封装的div模式侧滑菜单,用户无需任何js干预,仅需按照特定结构书写html即可,详细规范参考mui官网。
UI组件
APICloud原生封装的alert、confirm、prompt、actionSheet、toast、showProgress(对应DCloud公司的showWaiting)等,DCloud公司的5+ runtime也对应做了原生封装,参考nativeUI规范;
此时把api.alert改为plus.nativeUI.alert或mui.alert极客。
另外,DCloud公司的mui前端框架,还针对部分组件实现了更易个性化定制的H5版本,比如:actionSheet、toast、openPicker(对应mui中的dtPicker),可直接从hello mui中查看示例;
APICloud还封装了原生的按钮、输入框等控件,这些控件HTML自己就有,而且也没有性能问题,我们认为这些封装没有意义,并且原生控件会导致很难定位排版及无法个性化样式。
导航菜单
navigationBar
APICloud通过原生封装navigationBar对象,实现可滑动的导航条效果;DCloud则通过标准H5实现的分段选择,具有同等效果,且样式更为丰富;参考hello mui示例中的segment(分段选择),如下为两张效果图:
tabBar
tabBar是一个底部选项卡组件,APICloud通过js动态生成该组件;mui同样封装了选项卡组件,但通过简单html即可生成,在HBuilder中输入mtab即可生成选项卡的代码块;同时hello mui提供了多种选项卡模式,例如:webview模式选项卡、div模式选项卡、仅文字选项卡、二级选项卡;
界面布局
button
APICloud封装了原生的按钮,其实HTML自己就有按钮,封装原生按钮多此一举。
mui对HTML的按钮做了样式美化,提供各种颜色风格的按钮,只需如下简单一行html即可生成一个蓝色按钮:
input type="button" class="mui-btn mui-btn-blue"
mui的按钮添加不同class即可实现更多风格,效果如如下:
citySelector
APICloud封装了一个原生citySelector组件,通过js调用生成;
DCloud公司则通过H5封装了一个popPicker组件,通过该组件,既可以实现城市选择,也可以实现日期时间选择;参考hello mui中对应示例,效果图如下:
listview
mui通过H5封装了列表组件,在HBuilder中输入mList并回车,就可以快速生成列表代码块,简单几行html,实现一个列表组件,代码如下:
ul class="mui-table-view"
li class="mui-table-view-cell"
a class="mui-navigate-right"
Item 1
/a
/li
/ul
mui同样支持左右滑动列表项显示功能按钮;同时,mui还封装了各种其它组件,比如二级列表、图文列表等,详细参考hello mui示例;
scrollPicture
APICloud封装的图片联播器,对应着mui封装的gallery slider(图片轮播)组件,按照特定格式写一段标准的html,就会自动生成图片轮播组件;关于图片轮播的详细介绍,参考mui官网;
slider
APICloud原生封装的滑动器,对应着mui框架中的range(滑块),好的前端一样可以写出媲美原生体验的滑块组件,且使用更简单,仅需如下3行代码:
div class="mui-input-row mui-input-range"
input type="range" id='block-range' value="50" min="0" max="100"
/div
mui封装的滑块效果图如下:
timeSelector
参考citySelector,对应mui封装的popPicker组件;hello mui中也单独针对时间,给出了原生和H5两种示例;
DCloud公司的mui框架封装的其它组件
mui封装了更多灵活的mobile前端组件,如下:
accordion(折叠面板)
switch(开关)
popover(弹出菜单)
radio(单选框)
checkbox(复选框)
input(输入框) -- 支持清空操作、语音输入
grid(9宫格)
扩展API对象--能力部分
APICloud和5+ runtime都扩展了标准js没有的原生能力。
APICloud的扩展依赖封装,官方或三方制作模块来给js开发者提供更多原生api。
但原生有40多万api,封装是一件不现实的事情。
5+ runtime的2、8原则是把20%常用的、跨平台的api设计在HTML5Plus规范里。
然后剩下的不常用的api通过Native.js或5+ SDK插件实现。
HTML5+的规范见html5plus.org/doc/h5p.html
一些常用的api,迁移只是把api改为plus。
但对象的方法、属性包括回调方式可能不一样,需要具体看api,整体而言APICloud设计的api回调多,学习掌握难。
本地存储
APICloud封装了sqllite和spModule,但事实上HTML5的websql和localstorage很好用,并且js操作浏览器自带的websql、localstorage效率比js通过原生桥接访问原生sqllite数据的效率更高。详见App离线本地存储方案
在后台添加js特效可实现这样的效果。
js代码为:
script language="JavaScript"
!--
var no = 5; //雪片数目
var speed = 20; //飘动速度。(值越大越慢)
var ns4up = (document.layers) ? 1 : 0; //当前浏览器类型,如果是NS则为1
var ie4up = (document.all) ? 1 : 0; //当前浏览器类型,如果是IE则为1
var s, x, y, sn, cs;
var a, r, cx, cy;
var i, doc_width = 800, doc_height = 600;
x = new Array();
y = new Array();
r = new Array();
cx = new Array();
cy = new Array();
s = 8; //每次下落的高度,越小越平滑,但是也越慢
if (ns4up) { //以NS兼容方式
doc_width = self.innerWidth; //取页面宽度
doc_height = self.innerHeight; //取页面高度
}
else
if (ie4up) { //以IE兼容方式
doc_width = document.body.clientWidth; //取页面宽度
doc_height = document.body.clientHeight; //取页面高度
}
for (i = 0; i no; ++ i) { //根据前面定义的雪片数目写进相应数目的层
initSnow(); //随机初始化层的坐标
if (ns4up) { //如果浏览器是NS
//用layer作为雪片(星号)的容器
document.write("layer name=\"dot"+ i +"\" left=\"1\" ");
document.write("top=\"1\" visibility=\"show\"font color=\"red\"");
document.write("*/font/layer");
}
else
if (ie4up) { //如果浏览器是IE
//用div作为雪片的容器
document.write("div id=\"dot"+ i +"\" style=\"POSITION: ");
document.write("absolute; Z-INDEX: "+ i +"; VISIBILITY: ");
document.write("visible; TOP: 15px; LEFT: 15px;\"font color=\"red\"");
document.write("*/font/div");
}
}
//初始化雪片,生成随机坐标
function initSnow() {
a = 6;
r[i] = 1;
sn = Math.sin(a);
cs = Math.cos(a);
cx[i] = Math.random() * doc_width + 1;
cy[i] = Math.random() * doc_height + 1;
x[i] = r[i] * sn + cx[i];
y[i] = cy[i];
}
//计算雪花位置,从新位置上出现,看起来就像是新产生的一样。
function makeSnow() {
r[i] = 1;
cx[i] = Math.random() * doc_width + 1;
cy[i] = 1;
x[i] = r[i] * sn + cx[i];
y[i] = r[i] * cs + cy[i];
}
//雪花下落的计算
function updateSnow() {
r[i] += s;
x[i] = r[i] * sn + cx[i];
y[i] = r[i] * cs + cy[i];
}
//在NS浏览器上处理雪片下落的主程序
function SnowdropNS() {
for (i = 0; i no; ++ i) { //依次处理每片雪花
updateSnow(); //下落
if ((x[i] = 1) || (x[i] = (doc_width - 20)) || (y[i] = (doc_height - 20))) { //如果超出屏幕范围
makeSnow(); //则调整雪片到新位置上
doc_width = self.innerWidth; //更新页面宽度数据
doc_height = self.innerHeight; //更新页面高度数据
}
document.layers["dot"+i].top = y[i]; //改变层的Y坐标,应用新的位置
document.layers["dot"+i].left = x[i]; //改变层的X坐标,应用新的位置
}
setTimeout("SnowdropNS()", speed);
}
//在IE浏览器上处理雪片下落的主程序
function SnowdropIE() {
for (i = 0; i no; ++ i) { //依次处理每片雪花
updateSnow(); //下落
if ((x[i] = 1) || (x[i] = (doc_width - 20)) || (y[i] = (doc_height - 20))) { //如果超出屏幕范围
makeSnow(); //则调整雪片到新位置上
doc_width = document.body.clientWidth; //更新页面宽度数据
doc_height = document.body.clientHeight; //更新页面高度数据
}
document.all["dot"+i].style.pixelTop = y[i]; //改变层的坐标,应用新的位置
document.all["dot"+i].style.pixelLeft = x[i];
}
setTimeout("SnowdropIE()", speed); //准备下一次下落过程。
}
if (ns4up) { //如果是NS
SnowdropNS(); //调用SnowdropNS使雪片下落
}
else
if (ie4up) { //如果是NS
SnowdropIE(); //调用SnowdropIE使雪片下落
}
--
/script
说明:可以根据自己的需求根据说明进行相应参数的修改
js表白
...........................
script
$(function(){
$.fn.snow({
minSize: 5, //雪花的最小尺寸
maxSize: 50, //雪花的最大尺寸
newOn: 150 //雪花出现的频率 这个数值越小雪花越多
});
});
/script
script type="text/javascript"
var offsetX = $("#loveHeart").width() / 2;
var offsetY = $("#loveHeart").height() / 2 - 55;
var together = new Date();
together.setFullYear(2010, 06, -32);
together.setHours(00);
together.setMinutes(0);
together.setSeconds(0);
together.setMilliseconds(0);
if (!document.createElement('canvas').getContext) {
var msg = document.createElement("div");
msg.id = "errorMsg";
msg.innerHTML = "Your browser doesn't support HTML5!br/Recommend use Chrome 14+/IE 9+/Firefox 7+/Safari 4+";
document.body.appendChild(msg);
$("#code").css("display", "none")
$("#copyright").css("position", "absolute");
$("#copyright").css("bottom", "10px");
document.execCommand("stop");
} else {
setTimeout(function () {
startHeartAnimation();
}, 5000);
timeElapse(together);
setInterval(function () {
timeElapse(together);
}, 500);
adjustCodePosition();
$("#code").typewriter();
}
/script
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流