FLASH 3D相册之利用BitmapData类制作

所属分类: 媒体动画 / Flash教程 阅读数: 112
收藏 0 赞 0 分享
/do/uploads/allimg/080906/1902130.jpg
FLASH相册不计其数。但像这种3D类相册,貌似还不是很多吧。呵呵。喜欢吗?如果喜欢,就学着给自己做一个吧。缺点就是只能放六张图片。因为只有六个面嘛。不过,如果您有创意,也可以试一下,八个面。或者十个面。呵呵。
制作方法。由于这个相册,主要运用到ActionScript。所以,前面动画部分就简略了。
1、先导入事先准备好的六张图片。点“文件”-"导入"-“导入到库”。
/do/uploads/allimg/080906/1902131.jpg

2、选择事先处理好的图片,然后依次导入。我们这里处理的图片大小为200*199。
/do/uploads/allimg/080906/1902132.jpg

3、导入后,然后打开库面板。
/do/uploads/allimg/080906/1902133.jpg

4、然后在导入的图片上击右键。选择“链接”。
/do/uploads/allimg/080906/1902134.jpg

5、在弹出的对话框中,输入"image0"。并且勾选如下图所示的两个复选框。
/do/uploads/allimg/080906/1902135.jpg

6、依照此方法,依次对其他五张图片进行设置。分别为"image0"、"image1"、"image2"、"image3"、"image4"、"image5"。
7、然后,可以在场景中绘制一个背景。颜色填充参考如下。这步不是必须的,呵呵。可以省略。
/do/uploads/allimg/080906/1902132.jpg

8、新建一AS层,添加代码。
/do/uploads/allimg/080906/1902137.jpg

9、代码及详细注释如下:

//导入BitmapData类
import flash.display.*;
//使 Flash 内容的尺寸固定
Stage.scaleMode = 'noScale';
//屏蔽右键
var my_mc:ContextMenu = new ContextMenu();
//隐藏右键
my_mc.hideBuiltInItems();
_root.menu = my_mc;
//创建一个空的影片剪辑,用于显示3D相册
_root.createEmptyMovieClip("my_blank_mc", 1);
//初始化旋转角度
var my_xuanzhuandushu = {x:0, y:0, z:0};
var my_Box_daxiaos = [{x:-100, y:-100, z:-100}, {x:100, y:100, z:-100}, {x:-100, y:100, z:-100}, {x:-100, y:-100, z:100}, {x:100, y:-100, z:100}, {x:100, y:100, z:100}];
//设置相册在舞台中的位置
my_blank_mc._x = 180;
my_blank_mc._y = 170;
//定义加载图片的函数
function my_getImages() {
  //由于立体相册只有六个面,所以这里复制六个图片;
  for (var i:Number = 0; i<6; i++) {
    //创建两个空影片MC
    my_blank_mc.createEmptyMovieClip("image"+i, i);
    my_blank_mc["image"+i].createEmptyMovieClip("my_blmc", i);
    //调用Bitmap
    my_blank_mc["image"+i].my_blmc.attachBitmap(BitmapData.loadBitmap("image"+i), 1, false, true);
  }
}
my_blank_mc.onEnterFrame = function() {
  //让相册旋转的力度,数字越小越快
  my_xuanzhuandushu.x -= this._ymouse/12000;
  my_xuanzhuandushu.y += this._xmouse/12000;
  var my_Box_zhuang_point = pointsTransform(my_Box_daxiaos, my_xuanzhuandushu);
  my_GetTransform(this.image0, my_Box_zhuang_point[2], my_Box_zhuang_point[0], my_Box_zhuang_point[3]);
  my_GetTransform(this.image1, my_Box_zhuang_point[5], my_Box_zhuang_point[1], my_Box_zhuang_point[2]);
  my_GetTransform(this.image2, my_Box_zhuang_point[0], my_Box_zhuang_point[2], my_Box_zhuang_point[1]);
  my_GetTransform(this.image3, my_Box_zhuang_point[4], my_Box_zhuang_point[3], my_Box_zhuang_point[0]);
  my_GetTransform(this.image4, my_Box_zhuang_point[3], my_Box_zhuang_point[4], my_Box_zhuang_point[5]);
  my_GetTransform(this.image5, my_Box_zhuang_point[1], my_Box_zhuang_point[5], my_Box_zhuang_point[4]);
};
function pointsTransform(points, my_xuanzhuandushu) {
  var my_Pointss = new Array();
  var sx = Math.sin(my_xuanzhuandushu.x);
  var cx = Math.cos(my_xuanzhuandushu.x);
  var sy = Math.sin(my_xuanzhuandushu.y);
  var cy = Math.cos(my_xuanzhuandushu.y);
  var sz = Math.sin(my_xuanzhuandushu.z);
  var cz = Math.cos(my_xuanzhuandushu.z);
  var x, y, z, xy, xz, yx, yz, zx, zy;
  var i = points.length;
  while (i--) {
    x = points[i].x;
    y = points[i].y;
    z = points[i].z;
    xy = cx*y-sx*z;
    xz = sx*y+cx*z;
    yz = cy*xz-sy*x;
    yx = sy*xz+cy*x;
    zx = cz*yx-sz*xy;
    zy = sz*yx+cz*xy;
    my_Pointss[i] = {x:zx, y:zy};
  }
  return my_Pointss;
}
function my_GetTransform(mc, a, b, c) {
  mc._visible = my_TransifVisi(a, b, c);
  if (!mc._visible) {
    return;
  }
  var m = mc.transform.matrix;
  m.tx = b.x;
  m.ty = b.y;
  m.a = (a.x-b.x)/mc.my_blmc._width;
  m.b = (a.y-b.y)/mc.my_blmc._width;
  m.c = (c.x-b.x)/mc.my_blmc._height;
  m.d = (c.y-b.y)/mc.my_blmc._height;
  mc.transform.matrix = m;
}
function my_TransifVisi(a, b, c) {
  var db = b.x-a.x;
  if (!db) {
    return (a.y>b.y == c.x>a.x);
  }
  var dc = c.x-a.x;
  if (!dc) {
    return (a.y>c.y == b.x<a.x);
  }
  return ((b.y-a.y)/db<(c.y-a.y)/dc) != (a.x<b.x == a.x>c.x);
}
my_getImages();
//右下角的AD
my_url.onRelease = function():Void {
  getURL("http://www.taoshaw.com", "_blank");
};
stop();
更多精彩内容其他人还在看

flash制作可爱的简单线条笑脸

这篇教程是向脚本之家的朋友介绍flash制作可爱的简单线条笑脸方法,教程制作出来的笑脸非常可爱,而且方法不是很难,推荐过来,大家一起来学习吧
收藏 0 赞 0 分享

flash中制作文字按照顺序显示出来的gif动画

这篇教程是向脚本之家的朋友介绍flash中制作文字按照顺序显示出来的gif动画方法,教程制作出来的动画效果非常漂亮,难度不是很大,推荐过来,大家快快来学习吧
收藏 0 赞 0 分享

flash制作一个一个字的冒出来的打字效果

这篇教程是向脚本之家的朋友介绍flash制作一个一个字的冒出来的打字效果方法,教程很简单的,很适合新手来学习,推荐到脚本之家,喜欢的朋友快快来学习吧
收藏 0 赞 0 分享

用flash制作画卷展开、合拢的gif动画效果

这篇教程是向脚本之家介绍用flash制作画卷展开、合拢的效果方法,教程制作出来的效果很不错,难度不是很大,推荐到脚本之家,喜欢的朋友快快来学习吧
收藏 0 赞 0 分享

flash怎么制作太阳月亮地球演示动态图?

flash怎么制作太阳月亮地球演示动态图?这个动图的制作过程很麻烦,因为出现的元素很多,下面我们就来看看绘制的图文教程,每一步都有,参数很清楚,想学习的朋友可以进来参考一下
收藏 0 赞 0 分享

flash制作一闪一闪的gif动画文字按钮效果

这篇教程是向脚本之家的朋友介绍flash制作一闪一闪的gif动画文字按钮效果方法,教程真的很不错,制作出来的效果很漂亮,推荐过来,一起来学习吧
收藏 0 赞 0 分享

在flash中制作由花生组成的好看花型

这篇教程是向脚本之家的朋友介绍在flash中制作由花生组成的好看花型方法,教程制作出来的图形很漂亮,难度也不是很大,推荐到脚本之家,喜欢的朋友一起来学习吧
收藏 0 赞 0 分享

flash逐帧动画制作全过程解析

这篇教程是向脚本之家的朋友分享flash逐帧动画制作全过程,教程非常基础,很适合新手来学习,推荐过来,有兴趣的朋友可以过来学习
收藏 0 赞 0 分享

flash引导层动画:引导层制作飞行的飞机

这篇教程是向脚本之家的朋友分享flash引导层动画:引导层制作飞行的飞机教程,教程真的很不错,很适合新手来学习,推荐到脚本之家,喜欢的朋友快快来学习吧
收藏 0 赞 0 分享

Flash把静态的水的图片制作成形象逼真的水波效果

这篇教程是向脚本之家的朋友分享Flash把静态的水的图片制作成形象逼真的水波效果方法,教程真的很不错,很值得大家学习,推荐到脚本之家,喜欢的朋友快快来学习吧
收藏 0 赞 0 分享
查看更多