返回列表 回复 发帖

简单图片浏览效果

[要求]
按下鼠标拖动图片缓冲放大并移到最前面,松开鼠标停止拖动图片缓冲缩小。
[步骤]
导入几张图片分别转为影片元件,拖到主场景,实例名分别为pic0_mc、pic1_mc、pic2_mc……
在帧上写如下代码:

for (var d:Number = 0; d<=2; d++) {
this["pic"+d+"_mc"].onPress = function() {
  mx.behaviors.DepthControl.bringToFront(this);//移到最前
  startDrag(this);
  this.onEnterFrame = function() {
   this._xscale += (200-this._xscale)/4;//缓冲放大
   this._yscale += (200-this._yscale)/4;
   if (this._xscale>=200) {
    delete this.onEnterFrame;
   }
  };
};
this["pic"+d+"_mc"].onRelease = function() {
  stopDrag();
  this.onEnterFrame = function() {
   this._xscale -= (this._xscale-100)/4;//缓冲缩小
   this._yscale -= (this._yscale-100)/4;
   if (this._xscale<=100) {
    delete this.onEnterFrame;
   }
  };
};
}
[源文件]
缓冲放大与缩小.fla (143 KB)
[效果]

缓冲放大与缩小.swf (54.24 KB)

我的博客http://space.flash8.net/space/?401869
我好像看过一个tween类的做这个效果.比这个好多了

楼主可不可以介绍一下那种效果的做法?

应该也是这个坛子里面有发源文件的

可不可一告我一下,FLASH透明背景怎么做

可不可一告我一下,FLASH透明背景怎么做
是不错的  学习
自己选择的路,跪着也要吧它走完
先下了,学习

回复 #3 dgldj2005 的帖子

在网页文件中  加 代码   <param name="wmode" value="transparent" />

回复 #3 dgldj2005 的帖子

用_alpha=100之类来实现
好强呀,那个代码是不是专门学才行呀,看起来好难呀
这样写并不能用delete删除这个onenterframe,因为最后得出的数不会等于200或等于100,只会非常接近200或100,可以通过trace随便输出一个数字来发现,实际上这个onenterframe不会停止,会一直运动下去,可以把判断里的200和100改成199和101,然后在判断为真的时候再把大小变成200和100。
不能用delete删除这个onenterframe,带来的后果就是如果里面有准备播放的动画会停止在要播放的第一帧,这里说的要播放的动画是说的当这个放大到200的时候,这个mc里要播放一个第一帧为stop(),并且为空帧,播放第二帧,如果用楼主的代码,就会停止在第二帧,因为一直在循环这个动作,反正我做的时候是这样的,所以我觉得应该改成if (this._xscale>=199){delete this.onEnterFrame;}

但是我还想问一句
mx.behaviors.DepthControl.bringToFront(this);
虽然我知道产生的效果是移到最上层。可这句话为什么在语言参考里找不到???mx代表什么?后面的又代表什么??

[ 本帖最后由 MichaelLee23 于 2007-11-15 22:50 编辑 ]

回复 #9 MichaelLee23 的帖子

你说的不对。我用trace()测试过了。有200这个值。

回复 #2 orange2478 的帖子

学习楼主的方法做了一个,用Tween类也做了一个。发上去,比较一下,两种效果差不多。我觉得是一种习惯,用哪种方法都好。

缓动之脸谱(用tween类).fla (111.5 KB)

缓动之脸谱(用tween类).swf (10.56 KB)

缓动之脸谱(用公式).fla (87 KB)

缓动之脸谱(用公式).swf (8.34 KB)

返回列表