设为首页 加入收藏 网站搜索 繁體中文 中国建站网 — 站长资源分享平台

在FLASH中实现画中画效果

来源:136z.Com 作者:佚名 时间:2005-03-12 23:10:38
 

  大家对画中画的概念一定比较熟悉,就是在大屏幕显示的同时,一个小屏幕也同时显示另一个不同的画面,很像现在好多电视机都具备的画中画的功能。



  下面我们就以实例剖析的方式来看看如何在Flash中模拟实现画中画的功能。


将鼠标移到“小屏”范围,或者点击“小屏”范围,你会看到不同的变化

  其实制作思路很简单:在主屏幕上设置一个小的屏幕,然后将一个MC设置到小屏幕的位置处,这样就实现了简单的画中画效果,也可以利用一些小的技巧来丰富画中画的功能,比如,可以将大小屏幕中的动画互换等。

  1.  取得大小屏幕的高和宽:

  这里用到了getBounds(targetcoordinatespace);
  这个语句意思是取得MC相对于时间轴targetcoordinatespace(参数)处的坐标最大最小值,得到大小屏的高和宽数值,相关语句:

  size1 = _root.aa.getBounds(_root);
  width1 = size1.xmax-size1.xmin;
  height1 = size1.ymax-size1.ymin;
  size2 = _root.bb.getBounds(_root);
  width2 = size2.xmax-size2.xmin;
  height2 = size2.ymax-size2.ymin;
  // 取得两个框的长宽和坐标大小;

  2.  可以准确定位要播放的MC的初始位置和影片大小

  with (mc1) {
   _x = size1.xmin+width1/2;
   _Y = size1.ymin+height1/2;
   _width = width1;//定义影片的大小
   _height = height1;
  }
  with (mc2) {
   _x = size2.xmin+width2/2;
   _Y = size2.ymin+height2/2;
   _width = width2;
   _height = height2;
  }

  3.  画中画的MOUSE事件的实现:

  on (rollOver) {
   removeMovieClip ("_root.mc11");
   removeMovieClip ("_root.mc22");//为的是互换画面时删去复制的大屏里的MC
   with (_root.mc2) {
    _visible = 1;
    stop();
   }
   _root.nowframe2 = _root.mc2._currentframe;
   //定义一个变量取得当前帧数以达到大屏画中画从小屏暂停处开始
   duplicateMovieClip ("_root.mc2", "mc22", 22);
   //复制一个小屏里的MC,将要用到大屏里去
   with (_root.mc1) {
    stop();
    _visible = 0; //让大屏里的消失
   }
   with (_root.mc22) {
    _x = _root.size1.xmin+_root.width1/2;
    _Y = _root.size1.ymin+_root.height1/2;
    _width = _root.width1;
    _height = _root.height1;//定义刚才复制好的MC的宽高适合大屏,坐档和宽高
    gotoAndPlay(_root.nowframe2);//让它从小屏暂停处开始播放
   }
  }
  on (rollOut) {
   _root.mc2.play();
   _root.mc1.play();
   removeMovieClip ("_root.mc22");
   _root.mc1._visible = 1;删去复制的MC,并恢复原来的图像
  }
  on (release) {
   _root.nowframe2 = _root.mc2._currentframe;
   _root.nowframe1 = _root.mc1._currentframe;分别取得两个MC的当前帧数值
  以下得新定义两个MC的大小和位置以达到大小屏相互交换的效果
  with (_root.mc2) {
   _x = _root.size1.xmin+_root.width1/2;
   _Y = _root.size1.ymin+_root.height1/2;
   _width = _root.width1;
   _height = _root.height1;
   gotoAndPlay(_root.nowframe2);
  }
  with (_root.mc1) {
   _x = _root.size2.xmin+_root.width2/2;
   _Y = _root.size2.ymin+_root.height2/2;
   _width = _root.width2;
   _height = _root.height2;
   gotoAndPlay(_root.nowframe1);
  }
  gotoAndStop (2); //实现效果延续,具体解释见下
  }

  4.  交换后画中画效果的延续

  把按健做成两个帧的MC,设置点击后跳到后面第二帧,用第二帧上的按键来控制,第二帧的AS同第一帧大同小异。

  扩展的运用

  将这个代码变一下,可用loadMovie ("12345.swf", "/MC");引入外部的SWF文件代替内部的MC,同样达到画中画效果。

Tags:

  • 好的评价 如果您觉得好,就请您
      0%(0)
  • 差的评价 如果您觉得差,就请您
      0%(0)
  • 相关文章
    广告赞助

    文章随便看看 设计素材 建站学院 网页模板 视频教程

    网友评论

    共有 0 位网友发表了评论,得分 0 分,平均 0 分    查看完整评论

    用户名: 查看更多评论

    分 值:100分 85分 70分 55分 40分 25分 10分 1分

    内 容:

             通知管理员 验证码: