Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Скрипт для менюшки (http://www.flasher.ru/forum/showthread.php?t=105398)

cipa 14.12.2007 18:06

Скрипт для менюшки
 
Всем привет и с пятничкой! У меня вопрос такого рода: Есть менюшка, на ней несколько кнопок под которыми ползунок бегает. Если я навел на кнопку, ползунок движется к этой кнопке, как только отвел, он возвращается обратно на кнопку, которая активна в данный момент.
Анимированый пример если не совсем ясно объяснил: http://rojnetsky.narod.ru/

Просьба помочь со скриптом или может, что было бы вообще идеально, есть исходник подобного меню. Заранее благодарен!

CrazyFlasher 14.12.2007 18:23

Код:

import mx.utils.Delegate;
import mx.events.EventDispatcher;

class  anim.Movement{

        private var mc:MovieClip;
        private var vx:Number;
        private var vy:Number;
        private var d:Number;
        private var speed:Number;
        private var phisycsSpeed:Number;
        private var motionInterval:Number;
       
        public function Movement(){
                EventDispatcher.initialize(this);
        }
       
        public function moveFromTo(mc:MovieClip, from:Object, to:Object){
                this.mc = mc;
                vx = from.x - to.x;
                vy = from.y - to.y;
                d = Math.sqrt(vx*vx + vy*vy);
               
                mc.onEnterFrame = Delegate.create(this, function(){showMotion(to)});
        }
       
        private function showMotion(to:Object, smooth:Boolean){
                smoothMotion(to);
               
                if(Math.abs(mc._x - to.x) > 20 || Math.abs(mc._y - to.y) > 20){
                        mc._x -= vx / d * speed;
                        mc._y -= vy / d * speed;
                }else{
                        dispatchEvent({type:"update", event:"onPlace", target:mc});
                        delete mc.onEnterFrame;
                }
        }
       
        private function smoothMotion(to:Object){
                var newD:Number = Math.sqrt((mc._x - to.x)*(mc._x - to.x) + (mc._y - to.y)*(mc._y - to.y));
                speed = newD / 10;
        }
       
        public function stopMotion(toCenter:Boolean){
                delete mc.onEnterFrame;
               
                if(toCenter){
                        mc._x = Stage.width / 2;
                        mc._y = 200;
                }
        }
       
       
        //dispatcher methods
        public function dispatchEvent():Void {};
        public function addEventListener():Void {};
        public function removeEventListener():Void {};
}

писал когда-то такую темку...код не судите строго :) недаеюсь разберёшся

cipa 14.12.2007 18:31

Спасибо! Попробую разобраться. Потом отпишу...


Часовой пояс GMT +4, время: 16:02.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.