发新话题
打印

拖动,缓动,加投影效果(提供源码下载)

本帖已经被作者加入个人空间

拖动,缓动,加投影效果(提供源码下载)





在此谢谢我师兄,昨晚的相助,呵呵~~   (webstudio 里的一个特效制作),  有兴趣的,可以一起把它做得更好~哈~


站用一下地方上传文件,也分享一下,呵呵~  转载请注明~
复制内容到剪贴板
代码:
import flash.filters.DropShadowFilter;
var filterropShadowFilter = new DropShadowFilter(10, 45, 0x666666, .6, 18, 18, 1, 3, false, false, false);
var filterArray:Array = new Array();
filterArray.push(filter);
var loop:Number;
var grav:Number;
function move() {
this._x += grav*(_root._xmouse-this._x)/loop;
this._y += grav*(_root._ymouse-this._y)/loop;
if (this._x+15 == _root._xmouse+15 || this._y+15 == _root._ymouse+15) {
  //drag = false
  group_mc.filters = null;
} else {
  this.filters = filterArray;
}
//trace(grav)
//trace(loop)
}
var drag:Boolean = false;
group_mc.onPress = function() {
drag = true;
grav = .6;
loop = 1;
};
group_mc.onMouseMove = function() {
if (drag) {
  grav = .1;
  //loop = 10;
  move.call(this);
}
};
group_mc.onRelease = group_mc.onReleaseOutside=function () {
drag = false;
//delete onEnterFrame;
};
group_mc.onEnterFrame = function() {
if (drag) {
  move.call(this);
} else {
  group_mc.filters = null;
}
};
半夜又完善了一下效果,再加一个动态投影下去,效果就完全出来了~


可以参考这里的教程: http://www.webstudio.com.cn/tutorial/show.php?id=65
复制内容到剪贴板
代码:
filter.blurY=filter.blurX = Math.abs((this._x-_root._xmouse)/3);
               
filter.distance=(this._x-_root._xmouse)/5;
               
this.filters = filterArray;
[ 本帖最后由 love黄家驹 于 2007-7-9 11:12 编辑 ]

附件

拖动效果.fla (57 KB)

2007-7-5 16:21, 下载次数: 966

拖动效果.fla

拖动效果.swf (3.68 KB)

2007-7-5 16:21, 下载次数: 1194

拖动效果.swf

Drop.swf (4.57 KB)

2007-7-9 10:46, 下载次数: 237

lbynet
http://www.52hai.com/User0/140/

TOP

昨天晚上用3.0写了一遍,呵呵~~

3.0里没有 events as onReleaseOutside, onDragOut, onDragOver and so on.


所以得自己写events类,呵呵~~下次研究一下,再一起讨论共享,呵~
复制内容到剪贴板
代码:
/**
* ...
* @author lby
* @version 0.1
*/

package lbynet{

        import flash.display.Sprite;
        import flash.display.InteractiveObject;
        import flash.events.MouseEvent;
        import flash.events.Event;

        import flash.filters.DropShadowFilter;

        public class Drop {

                private var loop:int;
                private var grav:Number;
                private var can:Boolean = false;

                private var target:InteractiveObject;
                private var stage:Sprite;

                private var blurX:Number;
                private var blurY:Number;

                public function Drop(target:InteractiveObject,stage:Sprite) {

                        this.target = target;
                        this.stage = stage;

                        target.addEventListener(MouseEvent.MOUSE_DOWN,downHander);
                        target.addEventListener(MouseEvent.MOUSE_UP,upHander);
                        target.addEventListener(MouseEvent.MOUSE_MOVE,MoveHander);
                        //target.addEventListener(MouseEvent.MOUSE_OUT,OutHander);
                        target.addEventListener(Event.ENTER_FRAME,EnterFrameHander);
                }
                private function downHander(event:MouseEvent):void {

                        can = true;
                        grav = .6;
                        loop = 1;

                        trace("down");
                }
                private function upHander(event:MouseEvent):void {

                        can = false;
                        trace("UP");
                }
                private function MoveHander(event:MouseEvent):void {
                        if (can) {
                                grav = .1;

                                move();
                        }
                }
                private function OutHander(event:MouseEvent):void {

                        can = false;

                }
                private function EnterFrameHander(event:Event):void {
                        if (can) {
                                move();
                        } else {
                                target.filters = null;
                        }
                }
                private function move():void {
                        trace("move");

                        target.x += grav*(stage.mouseX - target.x)/loop;
                        target.y += grav*(stage.mouseY - target.y)/loop;

                        var filter:DropShadowFilter = new DropShadowFilter(10,45,0x666666,.6,blurX,blurY,1,3,false,false,false);
                        filter.blurX = filter.blurY = Math.abs((target.x-stage.mouseX)/3);
                        filter.distance = (target.x - stage.mouseX)/5;
                        target.filters = [filter];

                }
        }
}
lbynet
http://www.52hai.com/User0/140/

TOP

好支持你

TOP

源文件是 flash的 我用flash8无法打开

TOP

用FlashCS 才能打开,呵呵~5555555
lbynet
http://www.52hai.com/User0/140/

TOP

没有声音,真是个不小的缺陷啊.

TOP

国外的一个网站上也有此效果,也进行了一些扩展...

http://www.flashden.net/files/9624/index.html
lbynet
http://www.52hai.com/User0/140/

TOP

好东西

TOP

漂亮

漂亮

TOP

不错,不错

TOP

如果拿起时图片大些 也许效果更好

TOP

d!
学习课件制作中,推荐:http://www.kjxy8.cn/
http://www.caidoor.cn/

TOP

没效果
自己选择的路,跪着也要吧它走完

TOP

发新话题