Форум 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=147966)

Avrilka 18.12.2010 10:16

Ссылки или указатели
 
Столкнулся с такой проблеммой.

У меня есть МС1 у него есть массив1 пусть будет а. Причем массив а получился а=с

а=с это передача указателей (из С (если я изменю в а измениться и в С))

вообщем мне надо эту связь разорвать.

и еще я читал что указателей в АС 2 нету. была одна функция eval() но она откинулась после того как появился класс аррей и ее минус в том что она передавала ссылку только на массив, а для простых переменных например К:Number = 5 она бы вернула 5 а не ссылку на К. Если есть похожее в АС 2 на указатель напишите пожалуйста


ПС такой метод обмена информации очень удобен для моего случая. Заранее спасибо

Psycho Tiger 18.12.2010 13:18

Код AS3:

a=c.slice();

У нас указатели "безопасные", потому носят имя ссылок.

Avrilka 18.12.2010 15:36

то что вы написали это не указатель, это копирование массива. я знаю как это делается. указателем является
Код AS1/AS2:

a=с или a=c[0]

где если измениться в а поменяется и в с это я и добиваюсь. У меня большой массив, и мне надо передать только 1 елемент из него в массив а. + все изменения в массиве а переходят в с.

Спросите зачем мне?
Вот вам ответ: а что если я не знаю где и как называется массив из которого формируется массив с. что если я не могу к нему обратиться потому что я просто не знаю его имени? можно записать путь к МС и его имя через глобальные переменные но это не красиво не удобно и вообще не круто!

udaaff 18.12.2010 16:27

Сложные типы передаются только по ссылке. Хотите копию - копируйте.

Psycho Tiger 19.12.2010 02:18

А простые - только по значению. Сделать поинтер не получится.

Avrilka 19.12.2010 03:08

а наоборот как? как массивы передавать (НЕ КОПИРОВАНИЕМ) кроме как

Код AS1/AS2:

var A:Array=[]
var C:Array=[]
A=C

???

udaaff 19.12.2010 03:16

Вам уже ответили.


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

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