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

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

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

Регистрация: Jul 2007
Адрес: Россия, Москва
Сообщений: 522
По умолчанию Очень «строгая» проверка объектов

Всем привет)

Появилась необходимость в сравнении 2 объектов на полную идентичность, т.е. на то, что они ссылаются на один и тот же фрагмент в памяти. Не знаю, возможно ли такое в AS3, но постараюсь объяснить, как это должно работать:

Код AS3:
// Задаём начальные данные
var obj1:Object = { prop: 1 };
var obj2:Object = { prop: 1 };
var obj3:Object = { prop: obj1.prop };
 
// Тут функция должна возвращать false
checkObjectsIdentity(obj1.prop, obj2.prop)
// Тут функция должна возвращать true
checkObjectsIdentity(obj1.prop, obj3.prop)
 
/**
 * Функция, которая должна проверять объекты на идентичность
 * (ссылание на 1 объект в памяти).
 * 
 * @param	object1
 * @param	object2
 * 
 * @return
 */
function checkObjectsIdentity(object1:*, object2:*):Boolean
{
	// Тут происходит магия
}
Как мне подсказывает интуиция, из-за того, что в AS3 при работе с простыми объектами (Boolean, Sting, Number и т.п.) происходит копирование объекта данных, а не ссылка на его изначальный объект, подобная проверка вообще будет невозможна, так как мы всегда будем ссылаться на разные участки памяти (так как при присваивании объекту свойства другого объекта с простым типом данных происходит его копирование).

Но всё-таки, возможно, кто-то сталкивался с подобной задачей и сможет подсказать решение.

За ранее спасибо)

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

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

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


 


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


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