![]() |
|
||||||||||
|
|||||
|
Регистрация: Nov 2005
Сообщений: 48
|
Здравствуйте.
Я, в общем, это. У меня есть некоторый массив, объявленный прямо в stage. Я хочу ссылку на этот массив. То есть грубо говоря если работает var a1:Array=new Array(1,2,3); var a2:Array=a1; //типа ссылка на a1 trace(a2); //1,2,3 a2[0]=4; trace(а1); //4,2,3 //это в stage var a1:Array=new Array(1,2,3); //а это гдето в дисплейлисте var a2:Array=stage.a1; я понимаю, что это совсем неэлегантно - лезть из потомка к свойствам родителя. куда забавней видимо диспатчить событие из объекта, слушать его в stage и присваивать объекту тот массив. я понимаю теоретически но пока не осилю такое. и щас мне хватило бы иметь доступ к stage, как раньше к _root. видимо я не понимаю чегото в принципе. все, чего хочу я - иметь доступ к этому массиву из разных объектов. как сделать такую ссылку? |
|
|||||
|
stage != document class, если вы об этом.
Цитата:
Последний раз редактировалось relevance4; 05.03.2010 в 20:50. |
|
|||||
|
Если такой массив один - сделайте статическую переменную.
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
|
Lorem ipsum
|
создай какой-то public class MyArray и в нем сделай static public var a:Array = [];
и будет тебе read/write доступ к этому массиву из всех объектов посредством MyArray.a
__________________
Поймай яблоко 2! |
|
|||||
|
Регистрация: Nov 2005
Сообщений: 48
|
спасибо, товарищи.
2relevance4: такую конструкцию я ранее не видал. это как бы мы говорим что obj будет новым экземпляром класса Class, и передаем конструктору этого класса наш массив a1? боюсь и подумать какое исчадие это породит. или проделываем то же самое, но с this. a this в том, что раньше называлось _root, разве не будет означать stage? какой с этого прок? я конечно почитаю про Class, но похоже, я Вас просто не понимаю.. 2Psycho Tiger: вот оно! массив-то как раз один, но. как мне объявить ее в stage, ну или как это правильно сказать. 2Zebestov: да вот как раз пытался. но не могу до конца освободиться от идеологии AS1/AS2. я сделал класс, и этот массив теперь свойство класса. далее я создаю экземляр этого класса В STAGE, потому что где же еще, и имею 1119: Access of possibly undefined property through a reference with static type. хорошо, наверно в stage ничего класть не принято, а тогда ГДЕ ЭТОТ ОБЪЕКТ СОЗДАВАТЬ? вообше, знаете, просто пробивая по поиску тяжело понять вообще, это. ЗАЧЕМ НУЖНЫ статические классы. безопасность? ОТ КОГО? и зачем все элементы класса по дефолту private? хороший сыщик подозревает самого себя? и почему обращаться к родителю из потомка это дурной тон? И ПОЧЕМУ НЕЛЬЗЯ УДАЛЯТЬ ОБЪЕКТЫ ВРУЧНУЮ???? простите за оффтоп.. может кто посоветует хорошую книгу. |
|
|||||
|
Регистрация: Oct 2009
Сообщений: 174
|
а вот интересно почему эта строчка: trace(а1); //4,2,3 выдаёт 4,2,3, ведь мы меняем первый элемент у массива а2, он связан с а1 но а1 не связан с а2
|
|
|||||
|
Регистрация: Nov 2007
Адрес: Moscow
Сообщений: 566
|
Вы меняете элемент у первого массива. a2 — всего лишь ссылка на массив a1.
__________________
#flasher@irc.trg.ru:6667 |
|
|||||
|
Регистрация: Feb 2009
Адрес: Ялта, Севастополь, Одесса
Сообщений: 52
|
__________________
понимание основ освобождает от необходимости запоминания тысяч фактов Последний раз редактировалось Elser; 06.03.2010 в 15:35. |
|
|||||
|
Регистрация: Nov 2007
Адрес: Moscow
Сообщений: 566
|
Прошу прощения за оффтоп, но я надеюсь что мне никогда не придется разбираться в вашем коде.
__________________
#flasher@irc.trg.ru:6667 |
|
|||||
|
Регистрация: Feb 2009
Адрес: Ялта, Севастополь, Одесса
Сообщений: 52
|
хорошо, выбирайте кому что нравится )
//так я делаю в API разных модулей для Obi и ему подобных: var needEmptyArray:Boolean = true; var a2:Array; if(stage != null) { a2 = (stage as MovieClip).a1; } else { if(needEmptyArray){ a2 = new Array(); } else { a2 = null; } } //а так я делаю для себя и тех кто не испытывает особых затруднений с чтением кода: var needEmptyArray:Boolean = true; var a2:Array = (stage != null) ? (stage as MovieClip).a1 : needEmptyArray ? new Aray() : null;
__________________
понимание основ освобождает от необходимости запоминания тысяч фактов Последний раз редактировалось Elser; 06.03.2010 в 16:20. |
![]() |
![]() |
Часовой пояс GMT +4, время: 20:15. |
|
|
« Предыдущая тема | Следующая тема » |
|
|