Форум 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)
-   -   странная работа gotoAndPlay() (http://www.flasher.ru/forum/showthread.php?t=90901)

Makcumka 20.01.2007 13:50

странная работа gotoAndPlay()
 
Вложений: 1
Есть мувик (исходник находится во вложении). Состои из одного кадра. В кадре находятся кнопка и клип field1 (экземпляр клипа Field). Кнопка обрабатывает следующие события:
1. rollOver -> вызывает метод field1.Colored() [field1 должен стать зелёным]
2. rollOut -> вызывет метод field1.unColored() [field1 должен стать белым]
3. press -> вызывает метод field1.Switch() [field1 должен поменять цвет на другой т.е. с белого на зелёный с зелёного на белый]

Смена цвета реализована следующм образом:
Внутри клипа Field есть клип bg_mc (экземпляр клипа Field_bg) содержащий два кадра - на первом кадре изображён белый прямоугольник, на втором кадре изображён зелёный прямоугольник. В обоих кадрах находится скрипт с инструкцией stop();
В единственном кадре клипа Field прописан следующий код
Код:

this.Colored = function() {
        this.bg_mc.gotoAndPlay(2);
}

this.unColored = function() {
        this.bg_mc.gotoAndPlay(1);
}

this.Switch = function() {
        this.bg_mc.play();
}

stop();

При следующей последовательности действий происходит непонятное:
В начальном состоянии field1 белый (всё правильно)
Когда наводишь курсор на кнопку, field1 становиться зелёным (всё правильно)
Когда нажимаешь на кнопку, field1 меняет цвет на белый (всё правильно)
Когда уводишь курсор с кнопки, field1 становиться зелёным, хотя должен оставаться белым!!!:wacko:
В чём причина парадокса? Люди добрые, подскажите!

DarkLight 20.01.2007 15:01

У меня после увода курсора белый.

silin 20.01.2007 15:06

поставь gotoAndStop вместо gotoAndPlay

Makcumka 20.01.2007 18:19

Вложений: 1
Действительно с gotoAndStop() всё работает. Очень странно почему не работает с gotoAndPlay()... trace показывает что и в том и в другом случае исполняется только один кадр, но разный. У кого-нибудь есть версии почему так происходит.

P.S. Прошлый раз забыл в архив положить исходник, в этот раз в архиве и исходнк и swf-ка.

CorC 20.01.2007 18:31

потому что оно переходит дальше и там выполняется и педыдущий и следующий код

BACRHR 21.01.2007 15:12

если сделать gotoAndPlay на тот кадр, в котором ты сейчас находишься,то исполнение пойдет дальше по кадрам (и не важно есть stop в текущем кадре или нету)


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

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