![]() |
ссылка на свойство stage
Здравствуйте.
Я, в общем, это. У меня есть некоторый массив, объявленный прямо в stage. Я хочу ссылку на этот массив. То есть грубо говоря если работает Код AS3:
Код AS3:
я понимаю, что это совсем неэлегантно - лезть из потомка к свойствам родителя. куда забавней видимо диспатчить событие из объекта, слушать его в stage и присваивать объекту тот массив. я понимаю теоретически но пока не осилю такое. и щас мне хватило бы иметь доступ к stage, как раньше к _root. видимо я не понимаю чегото в принципе. все, чего хочу я - иметь доступ к этому массиву из разных объектов. как сделать такую ссылку? |
Цитата:
Цитата:
Код AS3:
|
Если такой массив один - сделайте статическую переменную.
|
создай какой-то public class MyArray и в нем сделай static public var a:Array = [];
и будет тебе read/write доступ к этому массиву из всех объектов посредством MyArray.a |
спасибо, товарищи.
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? хороший сыщик подозревает самого себя? и почему обращаться к родителю из потомка это дурной тон? И ПОЧЕМУ НЕЛЬЗЯ УДАЛЯТЬ ОБЪЕКТЫ ВРУЧНУЮ???? простите за оффтоп.. может кто посоветует хорошую книгу. |
а вот интересно почему эта строчка: trace(а1); //4,2,3 выдаёт 4,2,3, ведь мы меняем первый элемент у массива а2, он связан с а1 но а1 не связан с а2
|
Цитата:
|
Код AS3:
|
Цитата:
|
хорошо, выбирайте кому что нравится )
Код AS3:
|
Цитата:
как я уже написал, вызов происходит так: MyArray.a и все, никаких там new MyArray() и т.д. |
Цитата:
Код AS3:
|
ух ты, AS поддерживает " ? : ". многие годы я пытался забыть об этом кошмаре)
2Obi: (stage as MovieClip) это первое что приходит в голову. я не знал или так можно, но признаться честно, с этого я начал. не хочет. приводит к известию о том, что TypeError: Error #1009: Cannot access a property or method of a null object reference. это я обращаюсь к нему когда Event.ADDED или Event.ADDED_TO_STAGE. stage есть, массива там нет. null. а из стейджа трейсится массив. вот такая штука. 2Zebestov: как нигде? а где тогда? ээ. ну вот смотрите.. я не знаю как объяснить это проще. я этот массив делаю из файла, а этот файл я парсю. вот этими вот руками). изображаю галерею по мотивам этого массива. можно ввести секретное слово и все там редактить. ну тоесть, есть у меня в руте массив и юзер перемещается по разным кадрам. в одном кадре грубо говоря один интерфейс, в другом - другой! потом юзер нажимает на кнопку сабмит. в этот момент он перемещается в кадр с надписью "please wait" и происходит аплоад всех файлов которые он решил добавить и того файла с базой, из которого мы делали массив в начале этой истории. то есть я просто не знаю как это записывается, чтоб в руте лежало и все его могли. поскольку к массиву никак нет доступа, видно я не понимаю чего то так сказать ключевого. что вы думаете по этому поводу? |
можно еще раз, только более на понятном русском(отредактируйте сообщение, а то каша какая - то)?
|
Код AS3:
|
2tkaChuck: я тут повспоминал русский... ну никак проще не могу описать, что значит "нигде" =) нигде — это буквально... хм...
создаем класс: Код AS3:
Код AS3:
а чтобы работать с массивом, пиши так: Код AS3:
|
Как бы если вам просто нужно куда-то выложить массив, не создавая для этого дополнительный класс:
Код AS3:
Код AS3:
|
Цитата:
а раньше, помнится работало что-то подобное |
SDK4 вторая бета - компилируется нормально.
|
Цитата:
|
Ну как бы Stage - только DisplayObjectContainer, а не Sprite и уж тем более не MovieClip.
|
Код AS3:
|
спасибо все.
2wvxvw: спасибо, это оно. case closed |
| Часовой пояс GMT +4, время: 10:28. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.