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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 22.12.2005, 01:41
MOHCTEP вне форума Посмотреть профиль Отправить личное сообщение для MOHCTEP Найти все сообщения от MOHCTEP
  № 11  
Ответить с цитированием
MOHCTEP

Регистрация: Dec 2002
Адрес: Живу вот где-то
Сообщений: 493
Вах! Чудеса какие-то!!!!
Код:
var str="абвгдежзийклмнопрстуфхцчшщъыьэюя";
var data:Array=[];
var sl=str.length;
trace(str+'\t'+str.length);
init();
function init(){
	var tmp:Array=str.split('');
	trace("1 трейс массива");
	for(var i=0;i<sl;i++){
		var a=tmp.shift();
		tmp.push(a);
		data.push(tmp);
		trace(i+'\t'+data[i]);
	}
	trace("А вот 2 трейс готового массива!");
	for(i=0;i<sl;i++){
		trace(i+'\t'+data[i]);
	}
}
Второй трейс кажет, что массив забит НЕМОДИФИЦИРОВАННЫМИ данными!???!
Это как это???

Старый 23.12.2005, 15:14
Bubblegum вне форума Посмотреть профиль Отправить личное сообщение для Bubblegum Найти все сообщения от Bubblegum
  № 12  
Ответить с цитированием
Bubblegum

Регистрация: Nov 2005
Сообщений: 29
Неужели ни кто не знает как запрограммировать этот метод?
(Я знаю? что все знают, просто ни кто не хочет мне помочь.)
А вы знаете, что программ подобных этой в сети не так много. Сколько я смотрел в Интернете исходников не нашел.

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

Регистрация: Nov 2003
Адрес: Север
Сообщений: 244
Цитата:
Сообщение от MOHCTEP
Вах! Чудеса какие-то!!!!

.............................................

Второй трейс кажет, что массив забит НЕМОДИФИЦИРОВАННЫМИ данными!???!
Это как это???
Если ты потрейсишь в цикле массив "data", то увидишь, что Флэш каждую итерацию цикла заполняет этот массив (все элементы) содержимым массива "tmp", какое оно есть на момент итерации.
Почему это происходит? Похоже на то, как будто в массиве "data" хранятся ссылки на массив "tmp", а не значения...
Кто знает точно, подтвердите мысль.

Поэтому твой код можно переписать так:
Код:
var str="абвгдежзийклмнопрстуфхцчшщъыьэюя";
var data:Array=[];
var sl=str.length;
trace(str+'\t'+str.length);
init();
function init(){
var tmp:Array=str.split('');
trace("1 трейс массива");
for(var i=0;i<sl;i++){
var a=tmp.shift();
tmp.push(a);
data.push(tmp.join('').split(''));
trace(i+'\t'+data[i]);
}
trace("А вот 2 трейс готового массива!");
for(i=0;i<sl;i++){
trace(i+'\t'+data[i]);
}
}


Последний раз редактировалось nyctota; 23.12.2005 в 17:35.
Старый 24.12.2005, 02:42
MOHCTEP вне форума Посмотреть профиль Отправить личное сообщение для MOHCTEP Найти все сообщения от MOHCTEP
  № 14  
Ответить с цитированием
MOHCTEP

Регистрация: Dec 2002
Адрес: Живу вот где-то
Сообщений: 493
2 nyctota Спасибо, попытаю, только странно это как-то и не совсем понятно?

Старый 24.12.2005, 13:20
nyctota вне форума Посмотреть профиль Отправить личное сообщение для nyctota Найти все сообщения от nyctota
  № 15  
Ответить с цитированием
nyctota
 
Аватар для nyctota

Регистрация: Nov 2003
Адрес: Север
Сообщений: 244
2 МОНСТЕР:
Ну, почему непонятно. Во многих (или всех серьезных? =/) языках программирования есть передача ссылки на объект. Ждем-с подтверждения от знающих людей о наличие такой возможности во Флэше (хотя, по-моему, это только что было доказано нами )

2 Bubblegum:
Тебе по идее все карты в руки даны -- дерзай!

Старый 24.12.2005, 14:13
Ieshua вне форума Посмотреть профиль Отправить личное сообщение для Ieshua Найти все сообщения от Ieshua
  № 16  
Ответить с цитированием
Ieshua

Регистрация: May 2004
Адрес: Москва
Сообщений: 76
Тестируем этот скрипт.
Код:
var str = "абвгд";
var data:Array = [];
var sl = str.length;
trace(str+'\t'+str.length);
init();
function init() {
	var tmp:Array = str.split('');
	trace("1 трейс массива");
	for (var i = 0; i<sl; i++) {
		var a = tmp.shift();
		tmp.push(a);
		data.push(tmp+"!");
		trace(data[i]);
	}
	trace("А вот 2 трейс готового массива!");
	for (i=0; i<sl; i++) {
		trace(i+'\t'+data[i]);
	}
}
вот и ответ на ваш вопрос


Код:
var str = "абвгд";
var data:Array = [];
var sl = str.length;
trace(str+'\t'+str.length);
init();
function init() {
	var tmp:Array = str.split('');
	trace("1 трейс массива");
	for (var i = 0; i<sl; i++) {
		var a = tmp.shift();
		tmp.push(a);
		trace(tmp);
                 //следующая строка заполняет каждый элемент массива data содержимым tmp это будет видно в трейсе
		data.push(tmp);
		trace(data);
	}
}
Кажется ошибка работы массивов...0_0
__________________
Улыбка - понятие растяжимое...


Последний раз редактировалось Ieshua; 24.12.2005 в 14:31.
Старый 24.12.2005, 15:26
Ieshua вне форума Посмотреть профиль Отправить личное сообщение для Ieshua Найти все сообщения от Ieshua
  № 17  
Ответить с цитированием
Ieshua

Регистрация: May 2004
Адрес: Москва
Сообщений: 76
хм...Я так понимаю массив TMP после shift и push - приобретает некоторый вид...
И если он затем закладывается в другой массив...ээ...глюки начинаются =) весь массив таинственным образом перезаписывается...
__________________
Улыбка - понятие растяжимое...

Старый 24.12.2005, 17:20
Ieshua вне форума Посмотреть профиль Отправить личное сообщение для Ieshua Найти все сообщения от Ieshua
  № 18  
Ответить с цитированием
Ieshua

Регистрация: May 2004
Адрес: Москва
Сообщений: 76
ИТОГ расследований
Код:
arr = [];
str = [1, 2, 3];
arr.push(str);
trace(arr);   //выводит 1,2,3
str.reverse();
trace(arr);   //выводит 3,2,1
Цитата:
Похоже на то, как будто в массиве "data" хранятся ссылки на массив "tmp", а не значения...
Мысль здравая, но такой прием работает только, если с массивом проводится определенная операция(push,reverse,shift...etc).

Код:
arr = [];
str = [1, 2, 3];
arr.push(str);
trace(arr);   //выводит 1,2,3
str= [6,6,6]
trace(arr);   //выводит 1,2,3
//
__________________
Улыбка - понятие растяжимое...


Последний раз редактировалось Ieshua; 24.12.2005 в 17:48.
Старый 25.12.2005, 11:28
MOHCTEP вне форума Посмотреть профиль Отправить личное сообщение для MOHCTEP Найти все сообщения от MOHCTEP
  № 19  
Ответить с цитированием
MOHCTEP

Регистрация: Dec 2002
Адрес: Живу вот где-то
Сообщений: 493
nyctota, Ieshua: Благодарю друзья! После столь развернутого объяснения и примеров, все стало предельно ясно!

Старый 25.12.2005, 11:34
MOHCTEP вне форума Посмотреть профиль Отправить личное сообщение для MOHCTEP Найти все сообщения от MOHCTEP
  № 20  
Ответить с цитированием
MOHCTEP

Регистрация: Dec 2002
Адрес: Живу вот где-то
Сообщений: 493
nyctota, Ieshua: Благодарю друзья! После столь развернутого объяснения и примеров, все стало предельно ясно!

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

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

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


 


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


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