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

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

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

Регистрация: Nov 2007
Сообщений: 7
По умолчанию копирование клипа

в моем проекте необходимо сделать много обрабочиков onPress и onRelease для многих обьектов... чтоб не писать много кода, обьекты сохранил в массиве и попробывал сделать так:
Код:
for (var i=0; i<16; i++){	
	mass[i].onPress = function () {
		this.startDrag();
	}
}
но, как обнаружилось,после мы не можем обратиться к массиву таким способом даже в этом же цикле:
mass[i]
пишет, что i = 16;
подскажите способ, пожалуйста, как мне обнаружить "поднятый" и, соответсвенно потом "поставленный" обьект.


Последний раз редактировалось AstRonin; 23.11.2007 в 15:57.
Старый 22.11.2007, 23:54
Волгоградец вне форума Посмотреть профиль Отправить личное сообщение для Волгоградец Найти все сообщения от Волгоградец
  № 2  
Волгоградец
 
Аватар для Волгоградец

блогер
Регистрация: Sep 2007
Адрес: Гамбург
Сообщений: 1,648
Записей в блоге: 12
this["mass"+i]
Кажется так...

Старый 23.11.2007, 09:37
AstRonin вне форума Посмотреть профиль Отправить личное сообщение для AstRonin Найти все сообщения от AstRonin
  № 3  
AstRonin

Регистрация: Nov 2007
Сообщений: 7
нет, так не получиться - через i вообще ни как не получается ни к чему обратиться, i просто принимает окончательное значение и все.
т.е.... получается так, будто цикл прошел весь, запустил все слушатели событий и больше не вызывается...
странно, но обьекты все слушаются и двигаются...
может есть какой-то флаг, где отмечается какой именно обьект сейчас прослушался...
Код:
var t = 0;
for (var i=0; i<16; i++){	
	mass[i].onPress = function () {
		this.startDrag();
		trace(this ["mass"+i]);
                      t = i;
	}
           trace (t);
}
как и ожидалось, пишет:
0
0
...
0
undefined
цикл не работает... вернее работает, но только один раз...


Последний раз редактировалось AstRonin; 23.11.2007 в 10:00.
Старый 23.11.2007, 10:12
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 4  
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Вы совершаете самую распространенную ошибку начинающих программистов.

Старый 23.11.2007, 10:17
CorC вне форума Посмотреть профиль Отправить личное сообщение для CorC Найти все сообщения от CorC
  № 5  
CorC
 
Аватар для CorC

Регистрация: Jul 2006
Адрес: Земля>Россия>Вологда
Сообщений: 3,056
Отправить сообщение для CorC с помощью ICQ Отправить сообщение для CorC с помощью MSN Отправить сообщение для CorC с помощью Skype™
Надо передать это i в какую-нибудь переменную клипа.
__________________
"We Are The Champions My Friends!" Queen

Старый 23.11.2007, 10:58
AstRonin вне форума Посмотреть профиль Отправить личное сообщение для AstRonin Найти все сообщения от AstRonin
  № 6  
AstRonin

Регистрация: Nov 2007
Сообщений: 7
Цитата:
Сообщение от __etc
Вы совершаете самую распространенную ошибку начинающих программистов.
скажите, пожалуйста, какую. мне же надо от нее избавиться, чтоб не совершать.

Цитата:
Сообщение от CorC
Надо передать это i в какую-нибудь переменную клипа.
подождите, кто-то из нас двоих чего-то не допонимает
цикл проходит только один раз. при попытки мне поднять какой либо обьект в данном массиве цикл вообще ни как не реагирует, а поднимать я хочу любой обьект, безовсякой последовательности - оно так и работает, только я не могу понять, какой же всетакие обьект поднят.
даже если я и присвою i переменной клипа, от этого я не узнаю какой обьект я поднял в данный момент.
последний код, приведенный в теме выдает это:
Код:
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
и все, больше ничего...
при поднятии обьекта появляются сразу же после 15 нулей:
Код:
undefined
undefined
undefined
undefined
потому i = 16, а в массиве всего 15 элементов ,и i больше не меняется, ни как...

Старый 23.11.2007, 11:01
CorC вне форума Посмотреть профиль Отправить личное сообщение для CorC Найти все сообщения от CorC
  № 7  
CorC
 
Аватар для CorC

Регистрация: Jul 2006
Адрес: Земля>Россия>Вологда
Сообщений: 3,056
Отправить сообщение для CorC с помощью ICQ Отправить сообщение для CorC с помощью MSN Отправить сообщение для CorC с помощью Skype™
Код:
for (var i=0; i<16; i++){
	mass[i].i = i;
	mass[i].onPress = function () {
		this.startDrag();
		trace(this.i);
	}
}
__________________
"We Are The Champions My Friends!" Queen

Старый 23.11.2007, 11:12
AstRonin вне форума Посмотреть профиль Отправить личное сообщение для AstRonin Найти все сообщения от AstRonin
  № 8  
AstRonin

Регистрация: Nov 2007
Сообщений: 7
CorC, Помогло! Спасибо огромное!

ивените за предыдущий пост, код я понял, только не понял, что он может сработать, после вашей настойчивости изменил код - заработало!

Старый 23.11.2007, 16:02
AstRonin вне форума Посмотреть профиль Отправить личное сообщение для AstRonin Найти все сообщения от AstRonin
  № 9  
AstRonin

Регистрация: Nov 2007
Сообщений: 7
Дабы не создавать новой темы, пишу в этой.
существует два основных клипа. и третий находящийся в первом.
Можно ли копировать клип из первого клипа в другой?
метод attachMovie не подходит, т.к. неизвестно зарание какой именно будет копироваться, а duplicateMovieClip создает копию клипа в приделах данного.

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

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
Цитата:
Сообщение от AstRonin
Дабы не создавать новой темы, пишу в этой.
Ну давайте теперь тут свалку устроим
__________________
(и)Нильс.ru | Плагины для FlashDevelop

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

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

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


 


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


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