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

Дож 05.09.2007 12:25

Выползающая Кнопка - Клип, Как Прописать, Чтобы Заползала Обратно без ручной анимации
 
Вложений: 1
Здравствуйте!
Я - новичок и пытаюсь сделать кнопку которая выезжает и заезжает обратно без использования "ручной" анимации и без использования onEnterFrame на главной _root с целью возможности задействования на одной сцене одновременно 3 х или более таких кнопок, но вот не хватает мысли как сделать, чтобы кнопка заезжала обратно после события -onRollOut. Вот исходник, но замечу, что в кадрах _up и _over прямоугольники разные (в дальнейшем вместо прямоугольников будут две картинки). Т.е наводишь на картинку она становится другой и выезжает, убираешь мышь - картинка убирается назад и достигая исходного положения снова становится какой была. Вот убирания назад у меня не выходит и если не лень, то пожалуйста посмотрите исходник.
Может я вообще не то делаю. Код не даю т.к. в разных root прописан!
Спасибо!

Мыкыта 05.09.2007 14:09

дык у вас уже ручная анимация посему непонятно что хочется если програмно делать то никакаих кадров и с помощю класса tween, а если ручками то лепите анимацию с ключевыми кадрами...

Дож 05.09.2007 14:20

Цитата:

с помощю класса tween
Спасибо! Начинаю рыть...

Double 05.09.2007 17:12

а чем onEnterFrame не угодил? твин и проц нагрузит сильнее, и swf будет весить больше...

Wolsh 05.09.2007 17:42

Да там руками пять минут работы. В десять раз проще чем эти коды, засунутые в третий по вложенности мувик... Только путаться с таким кодом, в чем его смысл? Чтоб квадратик ползал? По-моему совершенно неоправдано.

etc 05.09.2007 17:47

Цитата:

Сообщение от Double
а чем onEnterFrame не угодил? твин и проц нагрузит сильнее, и swf будет весить больше...

А чем твин, работающий от onEnterFrame, нагрузит больше?

Golovach 05.09.2007 18:02

Код:

onClipEvent (enterFrame) {
        if (_x < _root.targetX){
                _x=_x+1;
        }
}

где targetX - желаемая координата нахождения вашего клипа

Дож 05.09.2007 19:04

Цитата:

чем onEnterFrame не угодил
Он мне угодил всем, но в данном случае, я хотел лишь избежать использования его (onEnterFrame) на главной линейке, т.к. разместив например 4 таких кнопки всякий раз когда убираем мышь с одной на другую button onEnterFrame получает новое значение и соответственно первая не задвинувшись зависает а вторая выезжает. Не знаю понятно ли объяснил, ну а как новичок естественно столкнулся с элементарными (для профи) проблемами. Поэтому и спрашиваю, может вообще не то делаю... :)

Цитата:

Код:

onClipEvent (enterFrame) {
        if (_x < _root.targetX){
                _x=_x+1;
        }
}


Это как я понимаю к самой кнопке прикрепляется, так?

Руками, это - MotionTween?

Wolsh 05.09.2007 19:48

Ну да. MotionTween, Великий и Ужасный :)

Дож 05.09.2007 20:04

Спасибо!!! Как я понял, для таких целей опытные люди код не используют?
Ведь здесь мне и посоветовали использовать в каждой кнопке(мувике) свой собственный root, чтобы кнопки на сцене не перехватывали друг у друга это несчастное событие. Казалось проще нет... Но отследить onRollOut не удаётся :( (мне по крайней мере)

Golovach 05.09.2007 23:40

Не мудрите. Всегда стремитесь упростить работу.
Какой рут в каждой кнопке? Что это вообще?

Wolsh 06.09.2007 02:31

Присоединяюсь. Вы просто сильно замудрили элементарную вещь.
Лучше посидите с ручкой и листочком бумажки и подумайте о конструкции, чем пытаться заставить ее работать методом тыка, постоянно усложняя и навешивая новые условия.

Double 06.09.2007 09:38

Дож:
Код:

myButton0.onEnterFrame = someFunction;
myButton1.onEnterFrame = anotherFunction;

__etc:
Код:

//import mx.transitions.Tween;

for (i=0; i<300; i++) {
        this.attachMovie("mc", "mc"+i, i, {_y: i});
/*        this["myTween"+i] = new Tween(this["mc"+i], "_x", mx.transitions.easing.None.easeNone,0, Stage.width, 50, false);

        this["myTween"+i].onMotionFinished = function() {
            this.start();
        }*/
        this["mc"+i].onEnterFrame = function() {
                this._x += Stage.width/50;
                if (this._x > Stage.width) this._x = 0;
        }
}

this.createTextField("tf", 300, 0, 350, 300, 50);
this.onEnterFrame = function() {
        this.ct = getTimer();
        tf.text = 1000/(this.ct - this.pt);
        this.pt = this.ct;
}

подразумевается, что mc какой-нить с альфами. сам посмотри на фпс (можно среднюю прикинуть, лень писать. там и так всё видно прекрасно). и это простейший твин.

Дож 06.09.2007 10:36

Огромное спасибо всем за ответы и мнения!
Double
Спасибо!..

etc 06.09.2007 11:32

Double, сомневаюсь в правильности подобного теста, честно говоря.
С onEnterFrame, во-первых, особо не разгуляешься в формулах, да и неудобно. Хотя я допускаю, что стандартный твин медленнее в силу чрезвычайной собственной кривости. С нормально написанным врядли будут глюки.
Тесты ставить проблематично (код не наглядный, нужно собирать fla, делать клипы, прописывать linkage и т.п., что лень).

Double 06.09.2007 11:55

__etc, согласен с тобой. на объективность не претендую. будем считать это моим предвзятым субъективным мнением) просто сколько не пытался сравнивать, самому руками написать эффективнее.


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

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