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

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

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

Регистрация: Jun 2006
Сообщений: 6
Question Обращение к клипам без Instance Name

Здравствуйте.
Есть ли возможность при помощи AS обратиться к клипам, не имеющим Instance Name?
Задача поставлена следующим образом: делается игра в Flash 8 со своим встроенным редактором уровней. Редактор должен быть сконструирован так, чтобы дизайнер, который им будет пользоваться, мог просто перетаскивать нужные предметы из библиотеки в сцену, не заботясь о прописывании InNm-ов. Таким образом, необходимо как-то получить список всех клипов лежащих в определенном слое или кадре и потом как-то к ним обращаться.
Возможно ли это?
Спасибо.

Старый 27.06.2006, 17:34
Cvazimodo вне форума Посмотреть профиль Отправить личное сообщение для Cvazimodo Найти все сообщения от Cvazimodo
  № 2  
Ответить с цитированием
Cvazimodo
[+1 10.07.06]

Регистрация: Jan 2003
Сообщений: 365
instanceName'сы есть у всех мувов, не зависимо, прописали их или нет.
В случае, если пользователь не прописал эти имена явно, они назначаются (генерируются) автоматически.

Получить все мувы в другом муве можно просто перебирая все элементы и проверяя их тип (typeof()== 'movieclip').

Старый 27.06.2006, 17:46
CursedScroll вне форума Посмотреть профиль Отправить личное сообщение для CursedScroll Найти все сообщения от CursedScroll
  № 3  
Ответить с цитированием
CursedScroll

Регистрация: Jun 2006
Сообщений: 6
Цитата:
Сообщение от Cvazimodo
Получить все мувы в другом муве можно просто перебирая все элементы и проверяя их тип (typeof()== 'movieclip').
Все уровни игры запихнуты в отдельный клип "Locations", в нем есть слой "Items". Предполагается, что дизайнер будет выкладывать предметы на этот слой. Если я обращусь к "Locations" и опрошу его при помощи (typeof()== 'movieclip') -- я получу список всех клипов, которые в нем содержаться. Как выделить те, которые нужны?

PS Я понимаю, что архитектура достаточно странная, но менять ее мы, к сожалению, не можем =\

Старый 27.06.2006, 17:55
Cvazimodo вне форума Посмотреть профиль Отправить личное сообщение для Cvazimodo Найти все сообщения от Cvazimodo
  № 4  
Ответить с цитированием
Cvazimodo
[+1 10.07.06]

Регистрация: Jan 2003
Сообщений: 365
Всё зависит только от конкретной задачи. Я бы делал примерно так:
Код:
for (var ii in Locations) {
	// перебираемый эелемент является клипом?
	if (typeof(Locations[ii]) == "movieclip") {
		// что это за клип?
		if (Locations[ii].itemType == "carpet") {
			// да, мы нашли ковёр и с ним надо что-то делать :)
		}
	}
}
А в библиотеке эелемент, изображающего ковер, нужно немного отредактировать. Заходим внутрь (ковра в библиотеке) и на первом кадре пишем:
Код:
this.itemType = 'carpet';
Что-то подобное... И пусть после этого дизайнер таскает этот мувик куда угодно (внутри Locations).

Старый 27.06.2006, 19:12
__i вне форума Посмотреть профиль Отправить личное сообщение для __i Найти все сообщения от __i
  № 5  
Ответить с цитированием
__i
 
Аватар для __i

Регистрация: Jan 2004
Адрес: Украина, Харьков
Сообщений: 1,524
Отправить сообщение для __i с помощью ICQ
все мувики по умолчанию нумеруються instanse0, instanse1... и т.д.

по этим именам можно к ним обращаться

Старый 27.06.2006, 19:57
CursedScroll вне форума Посмотреть профиль Отправить личное сообщение для CursedScroll Найти все сообщения от CursedScroll
  № 6  
Ответить с цитированием
CursedScroll

Регистрация: Jun 2006
Сообщений: 6
Код из примера не работал, я его изменил:
Код:
for (var i in Locations) {
	// перебираемый эелемент является клипом?
	if (typeof (Locations[i]) == "movieclip") {
		var tst = eval(targetPath(Locations[i]));
		// что это за клип?
		if (tst.itemType == "carpet") {		
			trace(">>>>>>>>>");
		}
	}
}
В таком варианте все заработало, спасибо!

А нет ли какой-то возможности брать конкретный слой, узнавать, что на нем лежит и потом с этим работать?

Старый 27.06.2006, 20:09
Double вне форума Посмотреть профиль Отправить личное сообщение для Double Найти все сообщения от Double
  № 7  
Ответить с цитированием
Double
 
Аватар для Double

Регистрация: Mar 2001
Сообщений: 1,147
сделай ему редактор на АС, чтобы он(дезигнер) уровни "генерил" в плеере. тут же пусть и тестирует.
__________________
Кто говорит, тот не знает. Кто знает, тот не говорит.

Старый 27.06.2006, 20:13
CursedScroll вне форума Посмотреть профиль Отправить личное сообщение для CursedScroll Найти все сообщения от CursedScroll
  № 8  
Ответить с цитированием
CursedScroll

Регистрация: Jun 2006
Сообщений: 6
Цитата:
Сообщение от Double
сделай ему редактор на АС, чтобы он(дезигнер) уровни "генерил" в плеере. тут же пусть и тестирует.
Тоже вариант, боюсь только, что в бюджет не впишимся =)

Старый 27.06.2006, 20:17
Double вне форума Посмотреть профиль Отправить личное сообщение для Double Найти все сообщения от Double
  № 9  
Ответить с цитированием
Double
 
Аватар для Double

Регистрация: Mar 2001
Сообщений: 1,147
ну а чего, у тебя все уровни сразу с роликом станут грузиться? а если юзер даже первый не сможет пройти? уровень должен храниться массивом данных в отдельном файле и грузиться по мере необходимости.
а дезигнера к fla на пушечный выстрел подпускать нельзя. завтра он у тебя основной код грохнет, его уволят, а тебе снова всё писать (хотя я бы в этом случае и тебя бы уволил тоже и админа, который ежедневное резервное копирование не сделал тоже бы уволил. и уборщицу. просто закомпанию)
__________________
Кто говорит, тот не знает. Кто знает, тот не говорит.

Старый 27.06.2006, 20:21
__i вне форума Посмотреть профиль Отправить личное сообщение для __i Найти все сообщения от __i
  № 10  
Ответить с цитированием
__i
 
Аватар для __i

Регистрация: Jan 2004
Адрес: Украина, Харьков
Сообщений: 1,524
Отправить сообщение для __i с помощью ICQ
Цитата:
Сообщение от CursedScroll
Код из примера не работал, я его изменил:
А нет ли какой-то возможности брать конкретный слой, узнавать, что на нем лежит и потом с этим работать?
а зачем тебе слой ? в готовой свф всеравно их нету!

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

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

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


 


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


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