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

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

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

Регистрация: Mar 2007
Адрес: Беларусь, др. Дрычин
Сообщений: 200
Отправить сообщение для OracleN с помощью ICQ
По умолчанию Приравнивание массивов не по ссылке

Господа, вопрос. Есть 2 массива array1 и array2. Как сделать чтобы array2 был равен array1 но не по ссылке, т.е. аналог функии дельфи assign вроде.
Пока я нашел что только по элементам надо пробегаться да и назначать, может есть другой вариант.

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

Регистрация: Jan 2006
Адрес: Сургут
Сообщений: 897
Отправить сообщение для MINASTIS с помощью Skype™
Да просто приравниваешь. Пример:
Код:
var ar1:Array = new Array("g", "b");
var ar2:Array;
ar2 = ar1;
trace(ar2[1]);


Последний раз редактировалось MINASTIS; 13.04.2007 в 19:28.
Старый 13.04.2007, 19:27
OracleN вне форума Посмотреть профиль Отправить личное сообщение для OracleN Найти все сообщения от OracleN
  № 3  
Ответить с цитированием
OracleN
 
Аватар для OracleN

Регистрация: Mar 2007
Адрес: Беларусь, др. Дрычин
Сообщений: 200
Отправить сообщение для OracleN с помощью ICQ
Дык так и делаю, просто хотел уточнить. Вдруг более верный путь есть.

Спасибо.

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

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
MINASTIS, то что вы написали, это и есть ссылка на массив, сделать копию массива можно с помощью concat
Код:
var a1:Array = [0, 1, 2];
var a2:Array;
var a3:Array;
a2 = a1;
a3 = a1.concat ();
a1[0] = 100;
trace (a1); //100,1,2
trace (a2); //100,1,2
trace (a3); //0,1,2
__________________
(и)Нильс.ru | Плагины для FlashDevelop

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

Регистрация: Jan 2006
Адрес: Сургут
Сообщений: 897
Отправить сообщение для MINASTIS с помощью Skype™
iNils имеешь ввиду если изменить ar2 изменится и ar1?

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

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Цитата:
Сообщение от MINASTIS
iNils имеешь ввиду если изменить ar2 изменится и ar1?
Конечно. На самом деле массива a2 не существует, это ссылка на a1. А вот a3 новый массив, построенный на данных из a1, только надо учитывать, что concat из многомерного массива сделает одномерный и он не работает с ассоциациями.
__________________
(и)Нильс.ru | Плагины для FlashDevelop


Последний раз редактировалось iNils; 13.04.2007 в 20:10.
Старый 14.04.2007, 01:58
Kikasso вне форума Посмотреть профиль Отправить личное сообщение для Kikasso Найти все сообщения от Kikasso
  № 7  
Ответить с цитированием
Kikasso
 
Аватар для Kikasso

Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
Цитата:
Сообщение от iNils
только надо учитывать, что concat из многомерного массива сделает одномерный
В смысле?
Код:
var a1:Array = [[0, 1, 2],[0, 1, 2],[0, 1, 2]];
var a3:Array = a1.concat();
a1[0] = [2,3,4];
a3[2] = [5,6,7];
function traceArr( arr ){
 for(var i=0; i<arr.length; i++)trace( i+ "> " + arr[i] );
}
traceArr (a1);
//0> 2,3,4
//1> 0,1,2
//2> 0,1,2
traceArr (a3);
//0> 0,1,2
//1> 0,1,2
//2> 5,6,7

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

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Цитата:
Сообщение от Kikasso
В смысле?
Меня бес попутал, даже в хелпе есть пример
__________________
(и)Нильс.ru | Плагины для FlashDevelop

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

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

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


 


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


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