一、淘宝页面中360度全景是怎么做的?
淘宝页面中360度全景是通过多帧图片拼接而成。
其制作原理是让宝贝旋转360度,在旋转过程中用相机抓拍或者录制,之后得到一组图片序列,最后用gif软件合成出gif动画上传至淘宝。根据这个原理,我们可以制作出一套智能化设备来替代这一繁琐的操作过程,那就是3D自动成像系统。
2016年7月份,淘宝上线了360度全景主图功能,是通过手机陀螺仪来控制宝贝主图的转动方向,这种淘宝全景主图,其所需格式是视频格式,也可以用3D自动成像系统来制作,不仅提高了用户体验,还能有效带来了转化率的提升,可见马爸爸为了加强用户体验用心之良苦!
二、FLASH 制作360度旋转展示! 要求源文件,以及代码解释!具体看补充!
我知道制作360度旋转展示有款软件比较好用,叫“3D自动成像系统”。它能输出flash、gif、html5格式的动画,可上传到网站的。你也可以去盈商科技官网看看。
三、有人会做一个物体360度展示的flash吗?
看这个,打开后看用鼠标在flash上面拖动,可能网速较慢,稍等一下,如果是这个效果,我把源文件给你一个学习用!
如果要按钮控制先放4个按钮名为backBtn,blowupBtn,reduceBtn,frontBtn,用来控制后转,放大,缩小,前转的
用画旋转的影片剪辑名为mc也放在舞台上,里面是一个物品的360连续的图片一帧帧放好!
把下面的代码放在时间轴上
var mcfilter=new flash.filters.BlurFilter();
var filterArr=new Array();
filterArr=mc.filters;
filterArr.push(mcfilter);
filterArr[0].blurX=0;
filterArr[0].blurY=0;
mc.filters=filterArr;
var downxmouse;
var downframe;
var draging=false;
var bhl1;
var bhl2;
var mm:MovieClip=new MovieClip();
mc.stop();
this.onMouseDown=function(){
bhl1=_root._xmouse;
bhl2=_root._xmouse;
downframe=mc._currentframe;
draging=true;
downxmouse=_root._xmouse;
}
this.onMouseUp=function(){
draging=false;
}
onEnterFrame=function(){
if(draging){
bhl2=bhl1-_root._xmouse;
bhl1=_root._xmouse;
if(bhl2>0){
tprevframe();
}else if(bhl2<0){
tnextframe();
}
}else{
if(bhl2>0){
tprevframe2()
}else if(bhl2<0){
tnextframe2()
}
}
if(bhl2==0){
filterArr[0].blurX=0;
filterArr[0].blurY=0;
mc.filters=filterArr;
}
}
function tnextframe(){
if(mc._currentframe>=24){
mc.gotoAndStop(1);
}else{
mc.gotoAndStop(mc._currentframe+Math.round(Math.abs(bhl2)/10));
}
if(Math.round(Math.abs(bhl2))>20){
filterArr[0].blurX=Math.round(Math.abs(bhl2));
mc.filters=filterArr;
}else{
filterArr[0].blurX=0;
filterArr[0].blurY=0;
mc.filters=filterArr;
}
}
function tprevframe(){
if(mc._currentframe-Math.round(Math.abs(bhl2/10))>=1){
mc.gotoAndStop(mc._currentframe-Math.round(Math.abs(bhl2/10)));
}else{
mc.gotoAndStop(24);
}
if(Math.round(Math.abs(bhl2))>20){
filterArr[0].blurX=Math.round(Math.abs(bhl2));
mc.filters=filterArr;
}else{
filterArr[0].blurX=0;
filterArr[0].blurY=0;
mc.filters=filterArr;
}
}
function tprevframe2(){
if(mc._currentframe-Math.round(Math.abs(bhl2/10))>=1){
mc.gotoAndStop(mc._currentframe-Math.round(Math.abs(bhl2/30)));
}else{
mc.gotoAndStop(24);
}
if(Math.round(Math.abs(bhl2))>30){
filterArr[0].blurX=Math.round(Math.abs(bhl2));
mc.filters=filterArr;
}else{
filterArr[0].blurX=0;
filterArr[0].blurY=0;
mc.filters=filterArr;
}
if(bhl2>50){
bhl2-=6;
}else if(bhl2>30 && bhl2<=50){
bhl2-=3;
}else if(bhl2>20 && bhl2<=30){
bhl2-=2;
}else if(bhl2>0){
bhl2-=1;
}
}
function tnextframe2(){
if(mc._currentframe>=24){
mc.gotoAndStop(1);
}else{
mc.gotoAndStop(mc._currentframe+Math.round(Math.abs(bhl2)/30));
}
if(Math.round(Math.abs(bhl2))>30){
filterArr[0].blurX=Math.round(Math.abs(bhl2));
mc.filters=filterArr;
}else{
filterArr[0].blurX=0;
filterArr[0].blurY=0;
mc.filters=filterArr;
}
if(bhl2<-50){
bhl2+=6;
}else if(bhl2<-30 && bhl2>=-50){
bhl2+=3;
}else if(bhl2<-20 && bhl2>=-30){
bhl2+=2;
}else if(bhl2<0){
bhl2+=1;
}
}
//
var shoessound:Sound=new Sound();
shoessound.attachSound(e003.wav);
function soundstart(){
shoessound.start();
}
/////////////////////////////////////
//放大
var blowupInt
blowupBtn.onPress=function (){
mc._xscale+=2;
mc._yscale+=2;
blowupInt=setInterval(blowupFun,100)
}
blowupBtn.onRelease=function (){
clearInterval(blowupInt)
}
blowupBtn.onReleaseOutside=function (){
clearInterval(blowupInt)
}
function blowupFun(){
mc._xscale+=2;
mc._yscale+=2;
}
//缩小
var reduceInt
reduceBtn.onPress=function (){
if(mc._xscale>2){
mc._xscale-=2;
mc._yscale-=2;
reduceInt=setInterval(reduceFun,100);
}
}
reduceBtn.onRelease=function (){
clearInterval(reduceInt)
}
reduceBtn.onReleaseOutside=function (){
clearInterval(reduceInt)
}
function reduceFun(){
if(mc._xscale>2){
mc._xscale-=2;
mc._yscale-=2;
}
}
//后旋转
var eddyFrontInt
frontBtn.onPress=function (){
eddyFrontInt=setInterval(eddyFrontFun,50);
}
frontBtn.onRelease=function (){
clearInterval(eddyFrontInt);
}
frontBtn.onReleaseOutside=function (){
clearInterval(eddyFrontInt);
}
function eddyFrontFun(){
if(mc._currentframe>1){
mc.prevFrame();
}else{
mc.gotoAndStop(mc._totalframes);
}
}
//前旋转
var eddyBackInt
backBtn.onPress=function (){
if(mc._currentframe<mc._totalframes){
mc.nextFrame();
}else{
mc.gotoAndStop(1);
}
eddyBackInt=setInterval(eddyBackFun,50);
}
backBtn.onRelease=function (){
clearInterval(eddyBackInt);
}
backBtn.onReleaseOutside=function (){
clearInterval(eddyBackInt);
}
function eddyBackFun(){
if(mc._currentframe<mc._totalframes){
mc.nextFrame();
}else{
mc.gotoAndStop(1);
}
}
|