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

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Flash > Action script 2.0

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

Регистрация: Jul 2002
Адрес: Россия, Ставропольский край, Пятигорск
Сообщений: 42
По умолчанию function+array+prototype=лажа... хэлп ми

Код:
MovieClip.prototype.goin = function(inv) {
	this.onEnterFrame = function() {
		this._y += (inv-this._y)*.2;
	};
};

text = "a|b|c";

function myArrayfunc(text) {
	var myArray = text.split("|");
	for (i=0; myArray[i]; i++) {
		newblok = "blok"+myArray[i];
		duplicateMovieClip(blok, newblok, i);
		newblok.goin(random(220));
	}
}
myArrayfunc(text);
Что делаю не так, почему не могу добраться до дубликата?
Обращаясь к дубликатам напрямую: bloka.goin(random(220)); все работает, клип двигается.., а newblok.goin(random(220));.. никак

люди хэлп


Последний раз редактировалось maler; 20.10.2004 в 08:43.
Старый 20.10.2004, 08:54
maler вне форума Посмотреть профиль Отправить личное сообщение для maler Посетить домашнюю страницу maler Найти все сообщения от maler
  № 2  
maler
 
Аватар для maler

Регистрация: Jul 2002
Адрес: Россия, Ставропольский край, Пятигорск
Сообщений: 42
Код:
MovieClip.prototype.goin = function(inv) {
	this.onEnterFrame = function() {
		this._y += (inv-this._y)*.2;
	};
};
text = "a|b|c";
function myArrayfunc(text) {
	var myArray = text.split("|");
	for (i=0; myArray[i]; i++) {
		newblok = "blok"+myArray[i];
		duplicateMovieClip(blok, newblok, i);
		this[newblok].goin(random(200)); 
	}
}
myArrayfunc(text);
..не понимаю разницы, но вот так:
Код:
this[newblok].goin(random(200));
работает

Может кто объяснит в чем разница??
Буду благодарен

Старый 20.10.2004, 10:30
DeliMIter вне форума Посмотреть профиль Отправить личное сообщение для DeliMIter Найти все сообщения от DeliMIter
  № 3  
DeliMIter
некрофил
 
Аватар для DeliMIter

Регистрация: Mar 2002
Адрес: ...по колено в кровище...
Сообщений: 2,292
Поясняю. У тебя ошибка с типами данных. Твой newblok - переменная типа строка (String). this[newblok] - элемент текущего адресного пространства (в твоем случае - мувиклипа) с именем содержащемся в переменной newblok.

Все три примера делают одно и то же несколько разными способами.

a = 10;
...
this["a"] = 10;
...
b = "a";
this[b] = 10;

Соответственно, когда ты пишешь

newblok = "blok"+myArray[i];
newblok.goin(random(220));

это то же самое, что и

("blok"+myArray[i]).goin(random(220));

и работать оно не будет, потому что ты вызываешь метод goin у строки, а не у клипа.
__________________
...убивать людей не удовольствия ради, но для еды.


Последний раз редактировалось DeliMIter; 20.10.2004 в 10:32.
Старый 20.10.2004, 10:33
dekud вне форума Посмотреть профиль Отправить личное сообщение для dekud Найти все сообщения от dekud
  № 4  
dekud
 
Аватар для dekud

Регистрация: May 2003
Адрес: Питер - город на Неве
Сообщений: 69
одна дает другая дразнится....

newblok - строка, имя мувика

this[newblok] - мувик

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

Регистрация: Jul 2002
Адрес: Россия, Ставропольский край, Пятигорск
Сообщений: 42
Цитата:
Оригинал написал(а) dekud
одна дает другая дразнится....

newblok - строка, имя мувика

this[newblok] - мувик
забавно, разница "не большая", а меняет все


ешо вопросик
this[newblok] - это что-то типа асоциативного массива, или как это понимать?

Старый 20.10.2004, 11:37
DeliMIter вне форума Посмотреть профиль Отправить личное сообщение для DeliMIter Найти все сообщения от DeliMIter
  № 6  
DeliMIter
некрофил
 
Аватар для DeliMIter

Регистрация: Mar 2002
Адрес: ...по колено в кровище...
Сообщений: 2,292
Это не что-то вроде, это он и есть.
__________________
...убивать людей не удовольствия ради, но для еды.

Старый 20.10.2004, 12:35
Antares вне форума Посмотреть профиль Найти все сообщения от Antares
  № 7  
Antares
Banned
[+1 16.05.2006]
[++1 16.05.2006]
[+ 1 21.05.06]
[++ за хамство]
[+1 21.05.2006]
 
Аватар для Antares

Регистрация: Dec 2003
Сообщений: 3,925
Цитата:
Оригинал написал(а) maler

забавно, разница "не большая", а меняет все
Побыл бы ты компилятором, понял бы, какая это "маленькая разница" %)

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

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

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


 


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


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