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

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

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

Регистрация: Jan 2006
Сообщений: 31
По умолчанию переменная в названии объекта

хочу в цикле создавать и оперерировать с обьектами

logo_mc_0
logo_mc_1
logo_mc_2
и тд

(???)
_root.createEmptyMovieClip("logo_mc_"(???), this.getNextHighestDepth());
logo_mc_(???)._x = my_x;

Старый 31.05.2008, 00:43
Роман Вадимович вне форума Посмотреть профиль Отправить личное сообщение для Роман Вадимович Найти все сообщения от Роман Вадимович
  № 2  
Ответить с цитированием
Роман Вадимович

Регистрация: May 2007
Сообщений: 232
Код:
for(i=0; i<10; i++)
{
  _root.createEmptyMovieClip("logo_mc_" + i, this.getNextHighestDepth());
  _root["logo_mc_" + i]._x = my_x;
}

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

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Роман Вадимович конечно прав, но это не эффективный способ.
Метод createEmptyMovieClip возращает ссылку на создаваемый клип, вот ею и надо пользоваться.
Код:
for (var i:Number = 0; i < 10; i++) {
	var mc:MovieClip = this.createEmptyMovieClip ("logo_mc_" + i, this.getNextHighestDepth ());
	mc._x = my_x;
}
И еще один момент. Если писать сначала _root.createEmptyMovieClip, а потом this.getNextHighestDepth, то проблемы вам обеспечены.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 31.05.2008, 02:00
Роман Вадимович вне форума Посмотреть профиль Отправить личное сообщение для Роман Вадимович Найти все сообщения от Роман Вадимович
  № 4  
Ответить с цитированием
Роман Вадимович

Регистрация: May 2007
Сообщений: 232
iNils, полностью с Вами согласен. Я просто заменил знаки вопросов в первом посте автора, полагая, что такой подход для него наиболее понятен.

Старый 01.06.2008, 01:49
dimas007 вне форума Посмотреть профиль Отправить личное сообщение для dimas007 Найти все сообщения от dimas007
  № 5  
Ответить с цитированием
dimas007

Регистрация: Jan 2006
Сообщений: 31
Часть 2 "переменная в названии переменной"

по аналогии хочу насоздавать в цикле переменные var_0, var_1, var_2 и тд , и потом же их использовать подставляя i

Старый 01.06.2008, 02:30
KoLar вне форума Посмотреть профиль Отправить личное сообщение для KoLar Найти все сообщения от KoLar
  № 6  
Ответить с цитированием
KoLar
 
Аватар для KoLar

Регистрация: Aug 2006
Адрес: Нижний Тагил
Сообщений: 48
dimas007, Вы уверены, что Вам нужны эти переменные? Человечество придумало для таких целей массивы. Гароздо удобнее

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

Регистрация: Jan 2006
Сообщений: 31
Цитата:
Сообщение от KoLar Посмотреть сообщение
dimas007, Вы уверены, что Вам нужны эти переменные? Человечество придумало для таких целей массивы. Гароздо удобнее
просто столкнулся с такой проблемой :
пишу видео-плеер с плей-листом, который загружает xml из которой берёт информацию о видео-роликах. на основании этого создаёт трек-лист и к каждому ролику делает кнопку.

Код:
_root.playlist.createEmptyMovieClip("preview_" + i, _root.playlist.getNextHighestDepth());
_root.playlist["preview_" + i].createEmptyMovieClip("container",0);
_root.playlist["preview_" + i]._x = 20;
_root.playlist["preview_" + i]._y = koordinat_y;
_root.playlist["preview_" + i].container.loadMovie(Arr[i]['preview']);

// это вывели в плей-листе превьюшку к клипу
// а теперь хотим чтобы при клике на превьюшке начал рпоигрываться этот клип :

_root.playlist["preview_" + i].onPress = function() {
my_ns.play(Arr[i]['location']);
};
и не работает метод play()


Последний раз редактировалось iNils; 01.06.2008 в 04:27.
Старый 01.06.2008, 04:14
KoLar вне форума Посмотреть профиль Отправить личное сообщение для KoLar Найти все сообщения от KoLar
  № 8  
Ответить с цитированием
KoLar
 
Аватар для KoLar

Регистрация: Aug 2006
Адрес: Нижний Тагил
Сообщений: 48
Цитата:
Сообщение от dimas007 Посмотреть сообщение
Код:
_root.playlist["preview_" + i].onPress = function() {
my_ns.play(Arr[i]['location']);
};
ага, и ещё забывают, что когда будет вызываться событие onPress, то переменной i уже существовать не будет. Или она будет иметь не то значение, которое хотелось бы. Поэтому надо делать так:
Код:
_root.playlist["preview_" + i].i = i;
_root.playlist["preview_" + i].onPress = function() {
my_ns.play(Arr[this.i]['location']);
};
P.S. dimas007, скоро придёт iNils и будет ругаться, что неправильно оформляешь код. Используй тег CODE.


Последний раз редактировалось KoLar; 01.06.2008 в 04:22.
Старый 01.06.2008, 03:18
alexcon314 вне форума Посмотреть профиль Отправить личное сообщение для alexcon314 Найти все сообщения от alexcon314
  № 9  
Ответить с цитированием
alexcon314
listener

модератор форума
Регистрация: Jun 2006
Сообщений: 3,260
Записей в блоге: 28
Отправить сообщение для alexcon314 с помощью ICQ
Исходник? Так трудно сказать определенно. Но раз вы используете loadMovie, то вы не застрахованы от часто встречающейся ошибки, когда назначают обработчик клипу до окончания его загрузки, забывая, что загрузка данных идет асинхронно с выполнением кода.

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

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Вместо всех этих километров кода, надо писать так
Код:
_root.playlist.createEmptyMovieClip("preview_" + i, _root.playlist.getNextHighestDepth());
var mc:MovieClip  = _root.playlist["preview_" + i].createEmptyMovieClip("container",0);
mc._x = 20;
mc._y = koordinat_y;
mc.container.loadMovie(Arr[i]['preview']);
...
И использование [code][/code] обязательно.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

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

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

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


 


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


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