|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
анимация объекта относительно курсора
Всем привет!!!
Помогите разобраться, как можно повторить такой эффект с фоновой картинкой ?? Добавлено через 18 минут по моему, движение дерева зависит от расстояния между курсором и мигающим спотом. Добавлено через 3 часа 14 минут Хотя, нет! Скорее всего определяется процент расстояния от начала координат сцены до курсора и на этот же процент перемещается координата картинки! Вот я пытаюсь написать, но пока не получается правильно сформулировать само перемещение картинки: var wStage:Number; var wTree:Number; var pMoveX:Number = new Number; wStage = stage.stageWidth; wTree = Full_tree.width; stage.addEventListener(MouseEvent.MOUSE_MOVE, getPersent); function getPersent(evt:MouseEvent):void { pMoveX = mouseX * 100 / wStage;//это роцент на который должен перемещаться объект if(pMoveX < 50) {moveMouseRight();} else{moveMouseLeft();} } function moveMouseRight() {Full_tree.x ++;} function moveMouseLeft() {Full_tree.x --;} trace(wStage+" – это высота сцены"); trace(wTree+" – это высота картинки"); Последний раз редактировалось Dr_Bra; 24.06.2010 в 17:00. |
|
|||||
Регистрация: Jun 2010
Сообщений: 28
|
Вот что-то типо того что на том сайте:
var objectList:Array = new Array(); //создаем объкеты for (var i:Number = 0; i<10; i++) { var mc:MovieClip = createEmptyMovieClip("circle_mc"+i, i); objectList.push(mc); mc._x = Math.random()*550; mc._y = Math.random()*400; //случайный коэффициент замедления mc.k = Math.random()*0.1+0.02; drawCircle(mc,Math.random()*5+10,Math.random()*0xffffff,100); } onEnterFrame = function () { //движения объектов за мышкой for (var i:Number = 0; i<objectList.length; i++) { var mc:MovieClip = objectList[i]; mc._x += (_xmouse-mc._x)*mc.k; mc._y += (_ymouse-mc._y)*mc.k; } //столкновения for (var i:Number = 0; i<objectList.length; i++) { var mc1:MovieClip = objectList[i]; var r1:Number = mc1._width*0.5; for (var j:Number = 0; j<objectList.length; j++) { var mc2:MovieClip = objectList[j]; var r2:Number = mc1._width*0.5; var dx:Number = mc1._x-mc2._x; var dy:Number = mc1._y-mc2._y; var len:Number = Math.sqrt(dx*dx+dy*dy); if (mc1 != mc2 && len<r1+r2) { mc1._x += 0.5*(r1+r2-len)*dx/len; mc1._y += 0.5*(r1+r2-len)*dy/len; mc2._x -= 0.5*(r1+r2-len)*dx/len; mc2._y -= 0.5*(r1+r2-len)*dy/len; } } } }; function drawCircle(target_mc:MovieClip, radius:Number, fillColor:Number, fillAlpha:Number):Void { var x:Number = radius; var y:Number = radius; with (target_mc) { beginFill(fillColor,fillAlpha); moveTo(x+radius,y); curveTo(radius+x,Math.tan(Math.PI/8)*radius+y,Math.sin(Math.PI/4)*radius+x,Math.sin(Math.PI/4)*radius+y); curveTo(Math.tan(Math.PI/8)*radius+x,radius+y,x,radius+y); curveTo(-Math.tan(Math.PI/8)*radius+x,radius+y,-Math.sin(Math.PI/4)*radius+x,Math.sin(Math.PI/4)*radius+y); curveTo(-radius+x,Math.tan(Math.PI/8)*radius+y,-radius+x,y); curveTo(-radius+x,-Math.tan(Math.PI/8)*radius+y,-Math.sin(Math.PI/4)*radius+x,-Math.sin(Math.PI/4)*radius+y); curveTo(-Math.tan(Math.PI/8)*radius+x,-radius+y,x,-radius+y); curveTo(Math.tan(Math.PI/8)*radius+x,-radius+y,Math.sin(Math.PI/4)*radius+x,-Math.sin(Math.PI/4)*radius+y); curveTo(radius+x,-Math.tan(Math.PI/8)*radius+y,radius+x,y); endFill(); } } |
|
|||||
получается как то так
stage.scaleMode=StageScaleMode.NO_SCALE; stage.align=StageAlign.TOP_LEFT; var w:Number; var h:Number; var speedX:Number; var speedY:Number; var l1_xpos:Number; var l2_ypos:Number; speedX = 30; speedY = 60; w = stage.stageWidth; h = stage.stageHeight; stage.addEventListener(MouseEvent.MOUSE_MOVE, checkMouse); function checkMouse(evt:MouseEvent):void { l1_xpos = w/2-(mouseX-w/2); l2_ypos = h/2-(mouseY-h/2)+225; } stage.addEventListener(Event.ENTER_FRAME, moveObj); function moveObj(evt:Event):void { layer1_mc.x +=(l1_xpos-layer1_mc.x)/speedX; layer1_mc.y +=(l2_ypos-layer1_mc.y)/speedY; } Вот только если нужно клип остановить, когда он приблизился своей нижней границей к нижней границе сцены. Это пока у меня не получается. |
Часовой пояс GMT +4, время: 21:26. |
|
« Предыдущая тема | Следующая тема » |
Теги |
анимация , движение , курсор |
|
|