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

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

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

Регистрация: Oct 2008
Сообщений: 29
Question Проблема с адресацией

Помогите, плз! Чтото не пашет...
есть мувик, где грузятся фотки в объекты с названиями "ph"+i
Подскажите, как в цикле обратиться к очередному такому объекту с загруженной в него фоткой с целью узнать/задать какие-либо его свойства?
Пробовал так:
Код:
a=my_mc["ph"+i]._width;
и так:
Код:
a=_root.my_mc["ph"+i]._width;
и так:
Код:
a=_root["ph"+i]._width;
один фиг- undefended((
а если пишу так:
Код:
a=ph1._width;
то всё отлично.
но, необходимо чтоб в цикле ВСЕ объекты перебирались..

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

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
Код:
a = this["ph" + i]._width;
__________________
(и)Нильс.ru | Плагины для FlashDevelop

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

Регистрация: Oct 2008
Сообщений: 29
не помогает.. всё также undefended((
непойму почему..
а если я исходник залью, поглядите что там нетак?

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

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

Старый 01.11.2008, 02:57
Cha вне форума Посмотреть профиль Отправить личное сообщение для Cha Найти все сообщения от Cha
  № 5  
Ответить с цитированием
Cha

Регистрация: Oct 2008
Сообщений: 29
вобщем вот он исходник. если ктонибудь найдет время его глянуть и посоветовать чтонибудь дельное, я буду очень признателен!
Вложения
Тип файла: rar pre2.rar (7.0 Кб, 47 просмотров)

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

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
Честно говоря, у вас там ошибка на ошибке и стиль написания кода ужасный:

1. грузите в num, который является строкой! Наверно в s собирались грузить?

2. Бросайте писать
Код:
for (i = 1; i <= N; i++) {
и начинайте так
Код:
for (var i = 0; i < N; i++) {
особенно когда работаете с массивами, у них индексация начинается с нуля

3. Переменным давайте осмысленные названия, и вам легче будет помнить, что вы там храните, и другим (типа помогающим как я) будет понятнее, что у вас происходит.

4. Локальные переменные начинайте писать с var. Типизация тоже желательна.

5. onLoadInit вещается на слушатель (с помощью addListener), а не на экземпляр MovieClipLoader, причем MovieClipLoader нужен один.

6. onLoadInit срабатывает для каждой картинки, поэтому цикл там не нужен.

Должно получится примерно следущее
Код:
on (release) {
	//s = new Array();
	var s1 = new Array ();
	var N = 4;
	mcl = new MovieClipLoader ();
	mcl.addListener (this);
	for (var i = 0; i < N; i++) {
		f = 0;
		z = 1;
		rot = 0;
		coef = 1;
		num = "ph" + i;
		s = pic.duplicateMovieClip (num, 999 - i);
		if (i < 10) {
			var adress = "concert/concert_0" + i + ".jpg";
		} else {
			var adress = "concert/concert_" + i + ".jpg";
		}
		mcl.loadClip (adress, s);
		this.onLoadInit = function (target:MovieClip) {
			var phw = (736 - target._width) / 2;
			var phh = (572 - target._height) / 2;
			target._x = 72 + phw;
			target._y = 62 + phh;
			target._rotation = rot;
			var rot2 = rot;
			if (rot >= 14) {
				z = -1;
			}
			if (rot <= -2) {
				z = 1;
			}
			if (coef == -1) {
				rot = (rot) * coef;
			} else {
				rot = ((-1) * rot + 2 * z);
			}
			target._x += 2 * rot2;
			target._y -= 2 * rot2;
			coef = (-1) * coef;
			trace (this[num2] + " " + this);
		};
	}
}
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 01.11.2008, 03:54
Cha вне форума Посмотреть профиль Отправить личное сообщение для Cha Найти все сообщения от Cha
  № 7  
Ответить с цитированием
Cha

Регистрация: Oct 2008
Сообщений: 29
iNils, большое спасибо за советы! для меня они действительно очень ценные. я теперь понял свои ошибки. Благодарю!

Добавлено через 10 минут
Только ещё один вопрос появился.
в onLoadInit элементы обрабатывабтся с конца, т.е. например ph4, ph3, ph2, ph1?
покрайней мере у в данном выше коде так получается.
а как можно сделать, чтоб элементы обрабатывались в прямом порядке их загрузки, т.е. первым ph1, потом ph2 и т.д. ?


Последний раз редактировалось Cha; 01.11.2008 в 04:05. Причина: Добавлено сообщение
Старый 01.11.2008, 10:36
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 8  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
Файлы обрабатываются после их загрузки во флешку. И в каком порядке они загрузятся, зависит от их веса. Если хотите обрабатывать в строго определенном порядке, то загружать их надо не все скопом, а сначала одну, после onLoadInit другую, после второго onLoadInit третью и тд.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 01.11.2008, 11:28
Cha вне форума Посмотреть профиль Отправить личное сообщение для Cha Найти все сообщения от Cha
  № 9  
Ответить с цитированием
Cha

Регистрация: Oct 2008
Сообщений: 29
а.. понял, спасибо! попробую так сделать.

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

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

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


 


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


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