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

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

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

Регистрация: Mar 2008
Сообщений: 27
По умолчанию attachMovie() в цикле - непонятки с именами клипов

Здравствуйте.
И снова тупка =)
Почему-то вот в нижеследующем коде не определяется переменная и из-за этого не прикрепляется ни один клип.
Код:
for (var i:Number = 0; i<N; i++) {
    var movieName:String = "plate"+i;
    trace(movieName);
    element[i].movieName = this.movieName;
    trace(this.movieName);
    trace(element[i].movieName);
    element[i] = _root.attachMovie(eval(element[i].movieName), 'plate_'+i, i, ...
Причем я пробовал и так и сяк - результат тот же - все присваивается и трассируется, кроме element[i].movieName. Ну я даже ради интереса менял
Код:
..._root.attachMovie(eval(element[i].movieName),...
на
Код:
..._root.attachMovie(element[i].movieName,...
и даже на
Код:
..._root.attachMovie(eval(this.movieName),...
Но, естественно, безрезультатно =)

Подскажите пожалуйста, в каком месте я неправильно работаю с переменными и их значениями, и как правильно вызывать клипы по имени, генерируемому в цикле?
Спасибо.


Последний раз редактировалось futurator; 14.04.2008 в 05:58.
Старый 14.04.2008, 05:55
alekslitvinenk вне форума Посмотреть профиль Отправить личное сообщение для alekslitvinenk Посетить домашнюю страницу alekslitvinenk Найти все сообщения от alekslitvinenk
  № 2  
Ответить с цитированием
alekslitvinenk
 
Аватар для alekslitvinenk

Регистрация: Oct 2005
Адрес: Москва
Сообщений: 491
Отправить сообщение для alekslitvinenk с помощью ICQ Отправить сообщение для alekslitvinenk с помощью AIM Отправить сообщение для alekslitvinenk с помощью Skype™
Ошибка в том, что нужно сначала создать элемент массива а потом уже обращаться к нему...
Код:


Код:
 

var element:Array = new Array();
var N:Number = 3;
for (var i:Number = 0; i<N; i++) { //Сохраняем ссылку на только что созданный экземпляр var movieName:String = "plate"+i;
trace(movieName); element.push(_root.attachMovie(movieName,movieName, i)); }


Последний раз редактировалось alekslitvinenk; 14.04.2008 в 06:46.
Старый 14.04.2008, 06:04
futurator вне форума Посмотреть профиль Отправить личное сообщение для futurator Найти все сообщения от futurator
  № 3  
Ответить с цитированием
futurator
 
Аватар для futurator

Регистрация: Mar 2008
Сообщений: 27
Ну у меня вообще-то массив создан изначально:
Код:
var element:Array = new Array();
Я просто, извините, не указал это в коде. Поэтому ваш пример ничего не изменил - почему-то клипы не аттачатся.

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

Регистрация: Oct 2005
Адрес: Москва
Сообщений: 491
Отправить сообщение для alekslitvinenk с помощью ICQ Отправить сообщение для alekslitvinenk с помощью AIM Отправить сообщение для alekslitvinenk с помощью Skype™
Вы сначала попробуйте приведенный код, а клипы у вас не аттачаться потому что
Код:
 
element[i].movieName = this.movieName;
не работает, так как у пустого элемента массива нету никаких свойств

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

Регистрация: Mar 2008
Сообщений: 27
Я сразу же попробовал ваш код - ничего не изменилось.

Старый 14.04.2008, 07:00
Mr. Fixit вне форума Посмотреть профиль Найти все сообщения от Mr. Fixit
  № 6  
Ответить с цитированием
Mr. Fixit
Banned
[+1 08.05.08]
[+4 14.04.08]
[+1.3 02.05.08]

Регистрация: Oct 2006
Адрес: кагбэ Киеф!!1
Сообщений: 1,473
глазом глянул код, и увидил eval. Не юзайте его.

Старый 14.04.2008, 07:29
Mr. Fixit вне форума Посмотреть профиль Найти все сообщения от Mr. Fixit
  № 7  
Ответить с цитированием
Mr. Fixit
Banned
[+1 08.05.08]
[+4 14.04.08]
[+1.3 02.05.08]

Регистрация: Oct 2006
Адрес: кагбэ Киеф!!1
Сообщений: 1,473
вот лан.. скажи спасибо какау
Код:
var moviesArray : Array = new Array();

for(var i : Number = 0; i<5; i++) {
	var movieName : String = 'movie_' + i;
	var mc : MovieClip = this.attachMovie('raf', movieName, i, {_x: i*50});
	moviesArray.push({instance: mc, name : movieName});
}

for(var j : String in moviesArray) {
	trace(moviesArray[j].instance);
}

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

Регистрация: Mar 2008
Сообщений: 27
Неее... Эт я могу. Я про другое писал: никак не могу привинтить в цикле клипы, чтобы имена-ссылки на клипы в библиотеке генерились сами.
Тоесть если у меня в библиотеке лежат 3 картинки с именами a1, a2 и a3, то мне желательно (если картинок больше 100, например) чтобы они аттачились автоматически в цикле. Но как сбацать параметр-указатель на их имена в библиотеке "a"+i для attachMovie() я не догоняю.
Вот =)

Старый 14.04.2008, 08:23
alekslitvinenk вне форума Посмотреть профиль Отправить личное сообщение для alekslitvinenk Посетить домашнюю страницу alekslitvinenk Найти все сообщения от alekslitvinenk
  № 9  
Ответить с цитированием
alekslitvinenk
 
Аватар для alekslitvinenk

Регистрация: Oct 2005
Адрес: Москва
Сообщений: 491
Отправить сообщение для alekslitvinenk с помощью ICQ Отправить сообщение для alekslitvinenk с помощью AIM Отправить сообщение для alekslitvinenk с помощью Skype™
Вы хотите присваивать имена клипам в библиотеке - тогда это вам надо с JSFL разбираться...


Последний раз редактировалось alekslitvinenk; 14.04.2008 в 09:04.
Старый 14.04.2008, 13:29
futurator вне форума Посмотреть профиль Отправить личное сообщение для futurator Найти все сообщения от futurator
  № 10  
Ответить с цитированием
futurator
 
Аватар для futurator

Регистрация: Mar 2008
Сообщений: 27
Цитата:
Сообщение от alekslitvinenk
Вы хотите присваивать имена клипам в библиотеке - тогда это вам надо с JSFL разбираться...
Нет, не хочу. Я другое имею ввиду. Мне не нужно называть клипы в библиотеке - они уже все в ней названы. Мне нужно их по-очереди аттачить, но так как их много, я хочу это все запихнуть в цикл, с целью автоматизации процесса =))) Вот это я и не могу понять как сделать, ибо варианты, которые приходили в голову, я уже перепробовал.

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

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

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


 


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


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