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

1uka 05.12.2008 10:45

как обрабатывать клипы если их очень много?
 
новичок в flash, у меня примерно 300 клипов я их задаю циклом, и на каждый надо сделать onRollOver и тп, руками прописывать для каждого хлопотно, через цикл неполучается for(i=1;i<=300i++){this["clip"+i].onRollOver}
(толи делаю неправильно, толи так нельзя в флэше делать) - подскажите вариант решения...заранее спасибо.

Kuruki 05.12.2008 11:01

Делаете все правильно, просто наверное в функции, "навешанной" на OnRollOver вы используете переменную i, что неправильно, ведь при вызове функции будет использоваться то значение i, которое имеется на момент вызова функции, а не на момент ее объявления. Сохраняйте значение i в какой-нибудь другой переменной, например

Код AS1/AS2:

for(i=1;i<=300;i++){
this['clip'+i].id = i;
this['clip'+i].onRollOver = function(){
trace(this.id)
}
}

А вообще раздел выбрали неверно, в след. раз будьте внимательнее
PS: Что-то у меня [A S][/A S] глючит...

1uka 05.12.2008 11:42

сделал так:
Код AS1/AS2:

for(i=1;i<=300;i++){
this["clip"+i].id = i;
this["clip"+i].onRollOver = function() {
this["clip"+this.id].gotoAndPlay("over");hint.text = "over";};
};

this["clip"+this.id].gotoAndPlay("over") не срабатывает :(, что я опять не так сделал ? :umnik2:

artem_fs 05.12.2008 11:47

Код AS1/AS2:

this["clip"+this.id].gotoAndPlay("over")

зачем из цикла вынесли?

Kuruki 05.12.2008 11:55

Код AS1/AS2:

for(i=1;i<=300;i++){
this["clip"+i].onRollOver = function() {
this.gotoAndPlay("over");
hint.text = "over";
}
}

this в данном случае ссылается на объект, вызвавший функцию, а не на таймлайн, как вы подумали...

iNils 05.12.2008 12:05

1uka, для оформления своего кода, надо использовать теги [code][/code]]

U4enik 07.09.2010 13:26

Попробовал все выше описанное, но почему-то не работает, хотя в теме не первый день.

mooncar 07.09.2010 14:33

Цитата:

Сообщение от U4enik (Сообщение 934006)
Попробовал все выше описанное, но почему-то не работает, хотя в теме не первый день.

Телепатов нет, показывайте код, прокомментируйте по ситуации.

U4enik 07.09.2010 15:47

Создал 25 клипов. Всем присвоены имена от "a1" до "a25" соответственно.
В первом и единственном кадре повесил цикл:

Код AS1/AS2:

for(i=1;i<=25;i++){
 
this["a1"+i].onRollOver = function() {
this._alpha = 50;}
 
this["a1"+i].onRollOut = function() {
this._alpha = 100;}
}

Это весь код.
Но реагируют почему-то только только 9 или 10 из 25 клипов.
Почему так?

iNils 07.09.2010 16:24

Возможно потому, что надо писать не this["a1"+i], а this["a"+i]?


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

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