Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Массив объектов (http://www.flasher.ru/forum/showthread.php?t=123442)

lexfl 02.04.2009 14:40

Массив объектов
 
Казалось бы несложная вещь, а вот не могу решить
Код AS1/AS2:

import DEmptyClass;
stop ();
var tst:DEmptyClass=new DEmptyClass();
 
var mouseListener:Object = new Object();
Mouse.addListener(mouseListener);
 
var stack:Array=Array();
 
//Нажатие кнопки мыши
mouseListener.onMouseDown = function()
{
        tst._x=_root._xmouse;
        tst._y=_root._ymouse;
        stack.push(tst);
        tst._x=0; tst._y=1;
        trace(tst._x+" "+tst._y);
        tst=DEmptyClass(stack.pop());
        trace(tst._x +" "+ tst._y);
}

Извлеченный из массива объект имеет координаты 0 и 1. А как же сохранить объект так, чтобы изменения tst на сохраненный не влияли.
То есть нужно сохранение по значению

Kuruki 02.04.2009 15:25

метод push не создает копию объекта, а лишь запоминает ссылку на него. Поэтому в вашем случае вы обращаетесь к одному и тому же объекту. Следовательно нужно создавать новый объект или дублировать tst в зависимости от задачи. Думаю вам подойдет duplicateMovieClip

lexfl 02.04.2009 16:30

Понятно что таким способом передается указатель. Я перешел с С++
и пока еще не придумал чем в actionscript заменить классы-контейнеры


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

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