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

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

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

Регистрация: Oct 2004
Сообщений: 141
Цитата:
Сообщение от iNils
Все мое "о боже" не дает покоя? Я объясню.
Запись вида
Код:
_root[name[x][y]]
говорит о том, что значение элемента массива имеет тип String, и вместо того, чтобы напрямую получить ссылку к объекту, мы опять привязываемся непонятно к чему.
А, то Все понятно, конечно все так, просто есть такой инструмент и он работает именно там где надо превратить стринг в имя.

Цитата:
Сообщение от iNils
Это про то, что надо сделать:
Код:
var mc:MovieClip = _root.qqq.www.eee.rrr.ttt.yyy.uuu.iii;
а потом только можно mc использовать?
В этом куске я говорил про выборку линка, это пример с тайлами.
Код:
var mc:MovieClip = __tile[i][j];
вот тут вы задаете линк, с которым работаете далее. В случае с прямым обращением этого можно не делать.
А к чему этот вопрос?
Вы имеете ввиду запись в одну строку?
Код:
var mc:MovieClip =attachMovie(...
Но ведь в случае с полем тайлов мы так не делаем, потому что это и есть превращение квадратного в длинное.
Хочу еще раз отметить, я за линки двумя руками, я даже написал почему их надо использовать

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

Регистрация: Aug 2005
Сообщений: 33
Отправить сообщение для AlexFomin с помощью ICQ
Пользуясь случаем и темой задам следующий вопрос: может кто подскажет как пользуясь AS 2.0 динамически добавить Object к Object, чтобы получилось нечто вроде Object1.Object2.Object3 и т.п. ?
Спасибо

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

Регистрация: Aug 2005
Сообщений: 33
Отправить сообщение для AlexFomin с помощью ICQ
Видимо или не понял, или не так выразился в вопросе(а может и то и другое ), нужны динамически именуемые объекты, ибо изначально неизвестно сколько их в иерархии может оказаться.

т.е. будет ли какая-то альтернатива механизму, создающему структуру main.item1.item2.item3....:

Код:
var main:Object = new Object;
var obj1:Object = new Object;
var count:Number = 1;
function createObj(obj:Object):Void {
	
	if(count < LIMIT) {
		
		obj["item" + count] = new Object;
		obj1 = obj["item" + count];
		count++;
		createObj(obj1);
	}
	
}
createObj(main);
ещё раз спасибо

Старый 03.01.2007, 17:36
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 4  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Использование ссылки mc = __tile[i][j] предпочтительноее, потому что многократное прямое обращение кушает намного больше процессорного времени.
А ещё лучше использовать событийную модель. Т.е. контейнер кричит «Тайл 3,4, отзовись!». Все тайлы смотрят на свои иксы и игреки и тот, у которого совпадают с требуемыми, кричит обратно «Я здесь!».
Правда, я не проверял, быстрее-ли это прямого обращения по имени, но тем не менее, отвязка от имен лучше — опять же повышается мобильность.


Последний раз редактировалось etc; 03.01.2007 в 17:39.
Старый 03.01.2007, 17:47
Leezard вне форума Посмотреть профиль Отправить личное сообщение для Leezard Посетить домашнюю страницу Leezard Найти все сообщения от Leezard
  № 5  
Ответить с цитированием
Leezard
 
Аватар для Leezard

Регистрация: Oct 2004
Сообщений: 141
Цитата:
Сообщение от __etc
Использование ссылки mc = __tile[i][j] предпочтительноее, потому что многократное прямое обращение кушает намного больше процессорного времени.
Теоретически возможно, практически вчера проверял, абсолютно одинаково. В цикле изменял альфы всех тайлов обоими методами. Время одно и то же, правда в случае с ссылками мы еще и массив теребим.

Старый 03.01.2007, 17:53
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 6  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Цитата:
Сообщение от Leezard
правда в случае с ссылками мы еще и массив теребим.
Какой массив? По-моему, без ссылок мы как раз массив на каждой строке и теребим.

Старый 03.01.2007, 18:01
Leezard вне форума Посмотреть профиль Отправить личное сообщение для Leezard Посетить домашнюю страницу Leezard Найти все сообщения от Leezard
  № 7  
Ответить с цитированием
Leezard
 
Аватар для Leezard

Регистрация: Oct 2004
Сообщений: 141
Цитата:
Сообщение от __etc
Какой массив? По-моему, без ссылок мы как раз массив на каждой строке и теребим.
Вот этот массив!
Код:
var mc:MovieClip = __tile[i][j];
Массив хранящий ссылки на тайлы.

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

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Цитата:
Сообщение от Leezard
Вот этот массив!
Код:
var mc:MovieClip = __tile[i][j];
Массив хранящий ссылки на тайлы.
Мы создаем этут ссылку, когда собираемся обратится к клипу более одного раза, и таким образом повышаем быстродействие.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

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

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Что вы к своим тайлам привязались? Есть всегда исключения, когда стоит сделать по другому, но надо помнить, что это исключения и для общих ответов они не подойдут.
А теперь представим, что что метод обработчик действий с тайлами, обрабатывает не конкретный клип с тайлами и различные. То есть мы дожны будет передавать путь до место положения тайлов, вместо того, чтобы дать ссылку на объект (экземпляр класса), а что именно с это ссылкой делать (обращаться к массиву) наш метод знает. Вот вам и первый шаг к ООП. Мы знаеть не знаем, где именно находятся и как именно называются наши тайлы.
В моем примере, если заметили имена у объектов были одинаковы ... вернее их нет.
Код:
__tile[x][y] = attachMovie ("tile", "",...
__________________
(и)Нильс.ru | Плагины для FlashDevelop

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

Регистрация: Oct 2004
Сообщений: 141
Цитата:
Сообщение от iNils
Что вы к своим тайлам привязались?
Догадайтесь
Цитата:
Сообщение от iNils
Есть всегда исключения, когда стоит сделать по другому, но надо помнить, что это исключения и для общих ответов они не подойдут.
Золотые слова, это то что я пытался сказать все это время.
Цитата:
Сообщение от iNils
А теперь представим, что что метод обработчик действий с тайлами, обрабатывает не конкретный клип с тайлами и различные.
Бесспорно, именно поэтому у меня обращения выглядят условно так
Код:
mc[i+"_"+j]...
mc (контейнер) на самом деле зарыт очень глубоко. Имеет четкую спецификацию и фиксированные размеры.
И еще момент (исключения) флэш от сервера получает информацию о появившихся в локации особых объектах. Далее он присылает море информации об их действиях и модификациях. Например объект переместился, помер, сказал, упал, сбежал...
Каждый объект в рамках всей системы (сервер-клиент) имеет неповторимый идентификатор. Ну очень просто по приходу стринга от сервера обратиться к объекту mc[id], так просто и естественно, что я , каюсь, забил на мобильность кода. А учитывая что таких объектов может быть много, есть все же в этом некий момент удобства.
Цитата:
Сообщение от iNils
В моем примере, если заметили имена у объектов были одинаковы ... вернее их нет.
Код:
__tile[x][y] = attachMovie ("tile", "",...
Конечно заметил.

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

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

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


 


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


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