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

Rot pfeffer 11.10.2006 22:56

обратная анимация с кнопкой
 
Привет всем, помогите пожалуйста, не пойму что я не так делаю...сделал флешку, есть 2 кнопки и 2 мувика на 4х слоях, при помещении курсора на кнопку,анимация первого мувика должна проигрываиться, а при уводе плавно переходить на начало... на первой кнопке все работает а вот на второй нет, как сделать чтоб на второй работала разобраться не могу...

Rot pfeffer 11.10.2006 22:58

Вложений: 1
вот пример мой

Rot pfeffer 12.10.2006 00:04

Народ, поможет кто нить нет?...очень надо

Neosano 12.10.2006 00:16

Вложений: 1
вот, чтож сложного?

Rot pfeffer 12.10.2006 00:27

Neosano
спасибо...туплю уже, 3 дня по 15 часов у компа, столько форумов перелопатил, глаза болят...вообщем бошка совсем не варит...преогромное спасибо

Хемуль 12.10.2006 00:42

Вложений: 1
2 Rot pfeffer:
Предлагаю более совершенный и облагороженный пример. Можно ставить сколько угодно кнопок и мувиклипов. В моём примере их 4. Обратите внимание на то, как упростилось всё на сцене. Причём я даю вам гибкий в настройке код. Полагайтесь больше на скрипты...
Код:
Код:

var moviesNumber:Number = 4;
var left:Number = 20;
var top:Number = 20;
var moviesInterval:Number = 30;
var buttonsYOffset:Number = 120;
var movieBaseName:String = "movie";
var buttonBaseName:String = "button";

var moviesXOffset:Number = 0;
for (var index:Number = 0; index < moviesNumber; index++)
{
        var newMovieName:String = movieBaseName + index;
        var newButtonName:String = buttonBaseName + index;
        var newMovie:MovieClip = this.attachMovie("myMovie", newMovieName, this.getNextHighestDepth());
        var newButton:MovieClip = this.attachMovie("myButton", newButtonName, this.getNextHighestDepth());       
        newMovie.white.gotoAndStop(1);
        newMovie._x = left + moviesXOffset;
        newMovie._y = top;
        newButton._x = newMovie._x;
        newButton._y = top + buttonsYOffset;
        newButton.id = index;
        newButton.onRollOver = function()
        {
                var movieClipName:String = movieBaseName + this.id;
                var whiteThing:MovieClip = this._parent[movieClipName].white;
                delete whiteThing.onEnterFrame;
                whiteThing.gotoAndPlay(1);
        };
        newButton.onRollOut = function()
        {
                var movieClipName:String = movieBaseName + this.id;
                var whiteThing:MovieClip = this._parent[movieClipName].white;               
                whiteThing.onEnterFrame = function()
                {
                        if (this._currentframe > 1)
                        {
                                this.prevFrame();
                        }
                        else
                        {
                                delete this.onEnterFrame;
                        }
                };
        };       
        moviesXOffset += (newMovie._width + moviesInterval);
}

Обратите внимание на то, как теперь устроены ваши мувиклипы. И не стоит использовать кнопки...
Исходник прикрепляю...

Rot pfeffer 12.10.2006 01:28

Хемуль
спасибо огромное за старания. правда в коде мне тяжеловато разобраться, я тот переделал на 4 кнопки...надосуге ваш разберу, что к чему, =) еще раз спасибо

D12 12.10.2006 01:39

Вложений: 1
2Хемуль и это облагороженный вариант ? помоему это третий думм судя по коду ...


Так же проще ...

Код:

_root.freme = 1;//счетчик кадров изночально на первом кадре
_root.GO = 0;//переменная проверяющая в какую сторону проигрывать аниацию
this.onEnterFrame = function() {
        if (_root.GO == 0 && _root.freme>1) {
                _root.freme -= 1;
        }
        if (_root.GO == 1 && _root.freme<mc._totalframes) {
                _root.freme += 1;
        }
        this.mc.gotoAndStop(_root.freme);
};
////////////////////////////////////
this.button.onRollOut = function() {
        _root.GO = 0;
};
this.button.onRollOver = function() {
        _root.GO = 1;
};

где "mc" ролик который должен проигрыватся
"button" кнопка отвечающая за проигрывания ролика

Хемуль 12.10.2006 02:03

2 D12:
Не путайте грешное с праведным. Мой пример рассчитан на произвольное количество мувиклипов и кнопок, ваш же работает только для одного мувиклипа и одной кнопки. Вы же не забыли, что у нас 2 кнопки? В моём примере кнопки и мувиклипы вытягиваются на сцену динамически, у вас предполагается их наличие с соответствующими именами на сцене для корректной работы кода.
Вы будто показываете мне гайку, а потом указываете мне на мой автомобиль и говорите: "Зачем же так сложно?" ^_^

D12 12.10.2006 02:15

Цитата:

Вы же не забыли, что у нас 2 кнопки? В моём примере кнопки и мувиклипы вытягиваются на сцену динамически, у вас предполагается их наличие с соответствующими именами на сцене для корректной работы кода.
Вы будто показываете мне гайку, а потом указываете мне на мой автомобиль и говорите: "Зачем же так сложно?" ^_^
Увы буду "for" никто неотменял ... и вы имея достаточный опыт должны это знать .

P.S. Каждый раз когда я вижу такие грамоздкие никчемные коды мне вспоминается один рисунок который вроде как карикатура , стоят двое ученых у доски , доска вся мелом формулами измалеванноя , и один другому на полном серьезе говорит -Народ нас непонимает-
Мораль : Орентируй свою работу на заинтересованную аудиторию , а городить " квадратуру круга " этим батенька в мемуарах займемся .

P.S.2 Прошу прощения за грубость , увы такова природа ,я на стороне новичков .


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

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