Форум 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)
-   -   SetInterval-Что же он наделал =/ (http://www.flasher.ru/forum/showthread.php?t=71356)

sxstudio 03.11.2005 10:07

SetInterval-Что же он наделал =/
 
Ребят, у меня такая вот шляпа : Я имею некий мувик "IMAGE", лежащий в руте... и имею много картинок маленьких - превьюшек больших фото.... при нажатии на одну маленнькую картинку вылезет соответствующая большая... и загрузится в Мувике "image"... В Image пишу так :
onClipEvent (load) {
_visible = true;
_root.image._x = 500-_width/2;
_root.image._alpha = 0;
alpa = setInterval(function () {
_root.image._alpha = _root.image._alpha+3;
if (_root.image._alpha == 100) {
clearInterval(alpa);
}
}, 100);
}


Что это делает вы уже поняли?(Эффект плавного появления большой фотки после нажатия на соответствующую маленькую миниатюру)
Проблема в том, что загрузив таким образом штук эдак 35 фоток этот эффект перестает действовать... и фотки начинают уже грузиться моментально - хоп, и открылась =)... Грешу на то что где-то насифачил и происходит следущее - вновь загруженная фотка не имеет значение _alpha = 0, так у первой фотки станет начальное значение _alpha = 0 +3.. у второй 3+3... и так далее... А мне надо чтоб каждая фотка загруженная в мувик image имела нач. значение alpha = 0, чтоб alpha потом не плюсовалась с подгрузкой новой картинки...
Заранее благодарен!

unlexx 03.11.2005 10:21

может проблема в том, что ты проверяешь на равенство? может лучше написать
if (_root.image._alpha > 100) {
_root.image._alpha = 100; //это так на всяк случай
clearInterval(alpa);
}

sxstudio 03.11.2005 10:42

Да... это непричем - ведь альфа больше сотни не бывает....

iNils 03.11.2005 11:03

Цитата:

Сообщение от sxstudio
Да... это непричем - ведь альфа больше сотни не бывает....

this.createEmptyMovieClip ("mc", 0);
mc.lineStyle (0, 0);
mc.beginFill (0);
mc.lineTo (100, 0);
mc.lineTo (100, 100);
mc.lineTo (0, 100);
mc.lineTo (0, 0);
mc.endFill ();
mc._alpha = 0;
this.onEnterFrame = function () {
mc._alpha += 3;
trace (mc._alpha);
};

unlexx 03.11.2005 11:05

попробуй сделать символ qq и посомтри в окно OutPut

_root.qq._alpha = 103;
trace(_root.qq._alpha);

unlexx 03.11.2005 11:07

как всегда пока пробовал во флеше iNils ответил :) респект iNils

sxstudio 03.11.2005 17:46

Чем дело то кончилось ... ну я понил что может - просто картинка то не может быть прозрачней непрозрачного.... Кто нить по существу не поможет??

andr64 03.11.2005 19:14

EnterFrame нада удалять -)

this.createEmptyMovieClip("mc", 0);
mc.lineStyle(0, 0);
mc.beginFill(0);
mc.lineTo(100, 0);
mc.lineTo(100, 100);
mc.lineTo(0, 100);
mc.lineTo(0, 0);
mc.endFill();
mc._alpha = 0;
this.onEnterFrame = function() {
if (mc._alpha<100) {
mc._alpha += 3;
} else {
delete this.onEnterFrame;
}
trace(mc._alpha);
};

iNils 03.11.2005 20:06

Смысл в том, что надо проверять не на равно 100, а больше либо равно 100.
Кроме того прибавляя к нулевой альфе 3, вы получите альфа равное не 3, а 2.734375.

sxstudio 04.11.2005 09:58

Не помогло - .... он гасит фото, а не проявляет.. и там маленький клочек, а нужно на всю фотку... когда подобрал координаты заливки, мувик начал уезжать влево, хотя там стоит центрирование... оч. странно!


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

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