Форум 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=105427)

CROL 15.12.2007 18:23

меню, помогите с кодом
 
Код:

import mx.transitions.Tween;
import mx.transitions.easing.*;
//
name1.varTween = new Tween(name1, "_x", Back.easeOut, -100, 20, 0.5, true);
name2.varTween = new Tween(name2, "_x", Back.easeOut, -100, 20, 0.6, true);
name3.varTween = new Tween(name3, "_x", Back.easeOut, -100, 20, 0.7, true);
name4.varTween = new Tween(name4, "_x", Back.easeOut, -100, 20, 0.8, true);
name5.varTween = new Tween(name5, "_x", Back.easeOut, -100, 20, 0.9, true);
_root.name1.onRollOver = function() {
        new Tween(name1, "_alpha", Back.easeOut, 100, 50, 1, true);
};
_root.name1.onRollOut = function() {
        new Tween(name1, "_alpha", Back.easeOut, 50, 100, 1, true);
};
_root.name1.onRelease = function() {
new Tween(info1, "_x", Back.easeOut, 1100, 1100, 1, true);
new Tween(info2, "_x", Back.easeOut, 1100, 1100, 1, true);
new Tween(info3, "_x", Back.easeOut, 1100, 1100, 1, true);
new Tween(info4, "_x", Back.easeOut, 1100, 1100, 1, true);
new Tween(info5, "_x", Back.easeOut, 1100, 1100, 1, true);
        new Tween(info1, "_x", Back.easeOut, 1100, 300, 1, true);
};
_root.name2.onRollOver = function() {
        new Tween(name2, "_alpha", Back.easeOut, 100, 50, 1, true);
};
_root.name2.onRollOut = function() {
        new Tween(name2, "_alpha", Back.easeOut, 50, 100, 1, true);
};
_root.name2.onRelease = function() {
new Tween(info1, "_x", Back.easeOut, 1100, 1100, 1, true);
new Tween(info2, "_x", Back.easeOut, 1100, 1100, 1, true);
new Tween(info3, "_x", Back.easeOut, 1100, 1100, 1, true);
new Tween(info4, "_x", Back.easeOut, 1100, 1100, 1, true);
new Tween(info5, "_x", Back.easeOut, 1100, 1100, 1, true);
        new Tween(info2, "_x", Back.easeOut, 1100, 300, 1, true);
};
_root.name3.onRollOver = function() {
        new Tween(name3, "_alpha", Back.easeOut, 100, 50, 1, true);
};
_root.name3.onRollOut = function() {
        new Tween(name3, "_alpha", Back.easeOut, 50, 100, 1, true);
};
_root.name3.onRelease = function() {
new Tween(info1, "_x", Back.easeOut, 1100, 1100, 1, true);
new Tween(info2, "_x", Back.easeOut, 1100, 1100, 1, true);
new Tween(info3, "_x", Back.easeOut, 1100, 1100, 1, true);
new Tween(info4, "_x", Back.easeOut, 1100, 1100, 1, true);
new Tween(info5, "_x", Back.easeOut, 1100, 1100, 1, true);
        new Tween(info3, "_x", Back.easeOut, 1100, 300, 1, true);
};
_root.name4.onRollOver = function() {
        new Tween(name4, "_alpha", Back.easeOut, 100, 50, 1, true);
};
_root.name4.onRollOut = function() {
        new Tween(name4, "_alpha", Back.easeOut, 50, 100, 1, true);
};
_root.name4.onRelease = function() {
new Tween(info1, "_x", Back.easeOut, 1100, 1100, 1, true);
new Tween(info2, "_x", Back.easeOut, 1100, 1100, 1, true);
new Tween(info3, "_x", Back.easeOut, 1100, 1100, 1, true);
new Tween(info4, "_x", Back.easeOut, 1100, 1100, 1, true);
new Tween(info5, "_x", Back.easeOut, 1100, 1100, 1, true);
        new Tween(info4, "_x", Back.easeOut, 1100, 300, 1, true);
};
_root.name5.onRollOver = function() {
        new Tween(name5, "_alpha", Back.easeOut, 100, 50, 1, true);
};
_root.name5.onRollOut = function() {
        new Tween(name5, "_alpha", Back.easeOut, 50, 100, 1, true);
};
_root.name5.onRelease = function() {
new Tween(info1, "_x", Back.easeOut, 1100, 1100, 1, true);
new Tween(info2, "_x", Back.easeOut, 1100, 1100, 1, true);
new Tween(info3, "_x", Back.easeOut, 1100, 1100, 1, true);
new Tween(info4, "_x", Back.easeOut, 1100, 1100, 1, true);
new Tween(info5, "_x", Back.easeOut, 1100, 1100, 1, true);
    new Tween(info5, "_x", Back.easeOut, 1100, 300, 1, true);

};

Вот такой вот собственно код...воопщем то все работает...
но мне надо кое что добавить в код, но низнаю как...
Допустим нажал я на "name1", при этом вылезло "info1", мне надо чтобы при нажатии на другой, например "name2" "info1" плавно уходил обратно на прежнее место, а затем выплывал "info2"
Поможите? буду очень признателен

wvxvw 15.12.2007 18:58

Даже не знаю.... очень много всего нужно переделывать...
Зачем такое количество твинов? Да еще и не удаляющихся... плеер по-идее должен скончаться после эдак 10-20 минут работы такого меню.
Код:

Tween(info1, "_x", Back.easeOut, 1100, 1100, 1, true);
4-й аргумент - исходная позиция, 5-й конечная. Какой смысл создавать твин и не создавать анимацию? В смысле, движения-то все равно никакого не будет...
ща попробую сделать простенький пример с похожей логикой...
Код:

import mx.transitions.Tween;
import mx.transitions.easing.*;
//
var select:Number;
var clips:Array = [];
var __tw:Tween = new Tween({i:0},"i",Back.easeOut, 0, 100, 1, true);
__tw.stop();
__tw.addListener(this);
onMotionChanged = function():Void {
        for(var q:Number=0;q<clips.length;q++){
                if(clips[q].__id != select){
                        if(clips[q]._lastPos == undefined){
                                clips[q]._lastPos = clips[q]._x;
                        }
                        if(clips[q]._x == 0){
                                delete clips[q]._lastPos;
                        }
                        clips[q]._x = clips[q]._lastPos-clips[q]._lastPos*__tw.obj.i/100;
                } else {
                        clips[q]._x = __tw.obj.i;
                }
        }
}
onMotionFinished = function(){
        for(var q:Number=0;q<clips.length;q++){
                delete clips[q]._lastPos;
        }
}
onMotionStarted = function(){
        for(var q:Number=0;q<clips.length;q++){
                delete clips[q]._lastPos;
        }
}
for(var q:Number=0;q<5;q++){
        var mc:MovieClip = rct(this,100,20,Math.random()*0xffffff,100);
        mc._y = q*21;
        mc.__id = q;
        mc.onRelease = function():Void {
                _root.select = this.__id;
                _root.onMotionStarted();
                _root.__tw.start();
        }
        clips.push(mc);
}
function rct(mc:MovieClip,w:Number,h:Number,c:Number,a:Number):MovieClip{
        var _mc:MovieClip = mc.createEmptyMovieClip("rct"+mc.getNextHighestDepth(),mc.getNextHighestDepth());
        _mc.beginFill(c,a);
        _mc.moveTo(0,0);
        _mc.lineTo(w,0);
        _mc.lineTo(w,h);
        _mc.lineTo(0,h);
        _mc.lineTo(0,0);
        _mc.endFill();
        return _mc;
}

Ну, может красотой хорошего стиля не блещет, но все приятнее будет.

CROL 15.12.2007 19:39

Код:

Tween(info1, "_x", Back.easeOut, 1100, 1100, 1, true);
эти твины нужны чтоб вернуть info(1.2.3.4.5) за экран(на прежнее место)при нажатии на name =/ или это можно проще сделать?
не ругай, я не силен в AS

koIIImarik 15.12.2007 20:33

Цитата:

Сообщение от CROL
Код:

Tween(info1, "_x", Back.easeOut, 1100, 1100, 1, true);
эти твины нужны чтоб вернуть info(1.2.3.4.5) за экран(на прежнее место)при нажатии на name =/ или это можно проще сделать?
не ругай, я не силен в AS

Можно так попробовать:
Код:

Tween(info1, "_x", Back.easeOut, info1._x, 1100, 1, true);


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

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