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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 12.12.2011, 05:36
mumnel вне форума Посмотреть профиль Отправить личное сообщение для mumnel Найти все сообщения от mumnel
  № 1  
Ответить с цитированием
mumnel
[+6 21.08.10]
[+1.3 12.12.11]

Регистрация: Aug 2010
Сообщений: 20
По умолчанию как заполучить клипы на сцене

Добрый день.
Подскажите пожалуйста, как решить следующую задачку:

На сцене (во fla-файле) размещены несколько клипов
с именами mc0, mc1, mc2 и т д mc100 - все они разные

в связанном с данной сценой as-файле, очень хочеться заполучить эти клипы причём АВТОМАТИЧЕСКИ заполучить,
например в цикле пробовал вот так:
mcArray[i] = 'mc'+i
Но увы не работает.

Подскажите пожалуйста))
Заранее спасибо

Старый 12.12.2011, 06:14
ChuwY вне форума Посмотреть профиль Отправить личное сообщение для ChuwY Посетить домашнюю страницу ChuwY Найти все сообщения от ChuwY
  № 2  
Ответить с цитированием
ChuwY
 
Аватар для ChuwY

Регистрация: Nov 2009
Адрес: Тула / Москва
Сообщений: 734
Отправить сообщение для ChuwY с помощью ICQ Отправить сообщение для ChuwY с помощью Skype™
Код AS3:
mcArray[i] = [контейнер клипов].getChildByName("mc"+i) as MovieClip;
__________________
9 из 10 голосов в моей голове сказали наркотикам "НЕТ"
Мои ачивки: художник-паразит.

Старый 12.12.2011, 08:04
mumnel вне форума Посмотреть профиль Отправить личное сообщение для mumnel Найти все сообщения от mumnel
  № 3  
Ответить с цитированием
mumnel
[+6 21.08.10]
[+1.3 12.12.11]

Регистрация: Aug 2010
Сообщений: 20
Цитата:
Сообщение от ChuwY Посмотреть сообщение
Код AS3:
mcArray[i] = [контейнер клипов].getChildByName("mc"+i) as MovieClip;
Спасибо. Всё супер

Добавлено через 9 минут
А можно как-нить определить сколько их там всего штук на сцене во fla-файле?
Шоб задать чему равно N в цикле.

Код AS3:
for (var i:int = 0; i < N; i++) 
{
mcArray[i] = getChildByName("mc"+i) as MovieClip;
}


Последний раз редактировалось iNils; 12.12.2011 в 08:32.
Старый 12.12.2011, 09:03
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 4  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
Если там кроме них ничего нет, то
Код AS3:
stage.numChildren;

Старый 12.12.2011, 09:49
mumnel вне форума Посмотреть профиль Отправить личное сообщение для mumnel Найти все сообщения от mumnel
  № 5  
Ответить с цитированием
mumnel
[+6 21.08.10]
[+1.3 12.12.11]

Регистрация: Aug 2010
Сообщений: 20
trace(stage.numChildren) //выдаёт 1, хотя на сцене их свыше 100


Последний раз редактировалось mumnel; 12.12.2011 в 09:56. Причина: поторопился, забыл пословицу про "Семь раз..."
Старый 12.12.2011, 10:04
samana вне форума Посмотреть профиль Отправить личное сообщение для samana Найти все сообщения от samana
  № 6  
Ответить с цитированием
samana
 
Аватар для samana

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
Цитата:
Сообщение от mumnel Посмотреть сообщение
trace(stage.numChildren) //выдаёт 1, хотя на сцене их свыше 100
А разве ваши клипы лежат в stage? Клипы лежат на сцене, а сцена уже в stage. Попробуйте:
Код AS3:
trace(this.numChildren)
p.s. Не забывайте, что метод numChildren не считает вложенные объекты.


Последний раз редактировалось samana; 12.12.2011 в 10:07.
Старый 12.12.2011, 10:05
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 7  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
значит они не на сцене
А что покажет?
Код AS3:
if (stage.getChildAt(0) is flash.display.DisplayObjectContainer) {
        var cont:flash.display.DisplayObjectContainer = stage.getChildAt(0) as flash.display.DisplayObjectContainer;
        trace(cont.numChildren);
}
Цитата:
Клипы лежат на сцене, а сцена уже в stage
А stage != сцена? )

Сорее они лежат просто в дочернем контейнере (который не является сценой), который уже лежит на сцене

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

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
Цитата:
Сообщение от goodguy
А stage != сцена? )
Может stage тоже называют сценой, но я всегда думал, что сцена это MainTimeline, root1,2,3....

Старый 12.12.2011, 10:09
mumnel вне форума Посмотреть профиль Отправить личное сообщение для mumnel Найти все сообщения от mumnel
  № 9  
Ответить с цитированием
mumnel
[+6 21.08.10]
[+1.3 12.12.11]

Регистрация: Aug 2010
Сообщений: 20
Ок. Теперь работает, Thanks
trace(this.numChildren) // 121

Добавлено через 3 минуты
Цитата:
Сообщение от goodguy Посмотреть сообщение
значит они не на сцене
А что покажет?
Код AS3:
if (stage.getChildAt(0) is flash.display.DisplayObjectContainer) {
        var cont:flash.display.DisplayObjectContainer = stage.getChildAt(0) as flash.display.DisplayObjectContainer;
        trace(cont.numChildren);
}
Данный код, также выдаёт верный результат

Старый 12.12.2011, 11:18
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 10  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
Цитата:
Данный код, также выдаёт верный результат
Ну, это содержимое экземпляра документ класса. Который при работе фо флеш иде представлен мувиклипом, или спрайтом (по умолчанию) при работе в нормальных редакторах кода.
Собственно, код, который предложил samana делает то же самое, только без проверки, является ли объект контейнером

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

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

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


 


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


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