Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 05.12.2008, 10:45
1uka вне форума Посмотреть профиль Отправить личное сообщение для 1uka Найти все сообщения от 1uka
  № 1  
Ответить с цитированием
1uka

Регистрация: Nov 2008
Сообщений: 45
По умолчанию как обрабатывать клипы если их очень много?

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

Старый 05.12.2008, 11:01
Kuruki вне форума Посмотреть профиль Отправить личное сообщение для Kuruki Найти все сообщения от Kuruki
  № 2  
Ответить с цитированием
Kuruki

Регистрация: Jan 2008
Сообщений: 669
Делаете все правильно, просто наверное в функции, "навешанной" на 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] глючит...


Последний раз редактировалось iNils; 05.12.2008 в 11:28.
Старый 05.12.2008, 11:42
1uka вне форума Посмотреть профиль Отправить личное сообщение для 1uka Найти все сообщения от 1uka
  № 3  
Ответить с цитированием
1uka

Регистрация: Nov 2008
Сообщений: 45
сделал так:
Код 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") не срабатывает , что я опять не так сделал ?


Последний раз редактировалось iNils; 05.12.2008 в 12:05.
Старый 05.12.2008, 11:47
artem_fs вне форума Посмотреть профиль Отправить личное сообщение для artem_fs Найти все сообщения от artem_fs
  № 4  
Ответить с цитированием
artem_fs

Регистрация: Jul 2008
Сообщений: 257
Код AS1/AS2:
this["clip"+this.id].gotoAndPlay("over")
зачем из цикла вынесли?

Старый 05.12.2008, 11:55
Kuruki вне форума Посмотреть профиль Отправить личное сообщение для Kuruki Найти все сообщения от Kuruki
  № 5  
Ответить с цитированием
Kuruki

Регистрация: Jan 2008
Сообщений: 669
Код AS1/AS2:
for(i=1;i<=300;i++){
this["clip"+i].onRollOver = function() {
this.gotoAndPlay("over");
hint.text = "over";
}
}
this в данном случае ссылается на объект, вызвавший функцию, а не на таймлайн, как вы подумали...

Старый 05.12.2008, 12:05
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 6  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
1uka, для оформления своего кода, надо использовать теги [code][/code]]
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 07.09.2010, 13:26
U4enik вне форума Посмотреть профиль Отправить личное сообщение для U4enik Найти все сообщения от U4enik
  № 7  
Ответить с цитированием
U4enik

Регистрация: Jun 2010
Сообщений: 97
Попробовал все выше описанное, но почему-то не работает, хотя в теме не первый день.

Старый 07.09.2010, 14:33
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 8  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Цитата:
Сообщение от U4enik Посмотреть сообщение
Попробовал все выше описанное, но почему-то не работает, хотя в теме не первый день.
Телепатов нет, показывайте код, прокомментируйте по ситуации.
__________________
Идите первым!

Старый 07.09.2010, 15:47
U4enik вне форума Посмотреть профиль Отправить личное сообщение для U4enik Найти все сообщения от U4enik
  № 9  
Ответить с цитированием
U4enik

Регистрация: Jun 2010
Сообщений: 97
Создал 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 клипов.
Почему так?

Старый 07.09.2010, 16:24
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 10  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Возможно потому, что надо писать не this["a1"+i], а this["a"+i]?
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Создать новую тему Ответ Часовой пояс GMT +4, время: 08:21.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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