![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Apr 2009
Сообщений: 141
|
у родительского класса два потомка
в одном потомке создан массив и мувиклип public var block_mc:MovieClip; public var block_array:Array; ... var temp2:MovieClip = new block ; temp2.x = 275; temp2.y = -50;//меньше - выше temp2.name = 'block_mc'; addChild(temp2); block_mc = MovieClip(getChildByName("block_mc")); var block_array:Array = new Array ; block_array.push(32); trace (block_array[0]); //печатает [object block] trace (block_mc); //печатает 32 подскажите, пожалуйста - как правильно обратится к элементу массива в данном случае Последний раз редактировалось Agni; 13.12.2011 в 20:38. |
|
|||||
|
Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
|
протрейсите без обращения к элементу массива
__________________
Загружаем картинки, минуя ошибки безопасности |
|
|||||
|
Регистрация: Apr 2009
Сообщений: 141
|
null пишет
странно - в одном месте создаются ![]() как обращаться тогда к массиву? |
|
|||||
|
ну если null пишет, надо, наверно, сначала добиться чтобы вместо null был Array, а потом к нему обращаться.
Если совсем туго - выложите кусок кода поболе - может выясним почему он не создается или исчезает до момента обращения этого. Последний раз редактировалось expl; 13.12.2011 в 21:45. |
|
|||||
|
Регистрация: Apr 2009
Сообщений: 141
|
изменил:
public var block_mc:MovieClip; public var block_array:Array; ... var temp2:MovieClip = new block ; temp2.x = 275; temp2.y = -50;//меньше - выше temp2.name = 'block_mc'; addChild(temp2); block_mc = MovieClip(getChildByName("block_mc")); var block_array:Array = new Array ; block_array.push(32); public var block_mc:MovieClip; public var block_array:Array = new Array ; ... var temp2:MovieClip = new block ; temp2.x = 275; temp2.y = -50;//меньше - выше temp2.name = 'block_mc'; addChild(temp2); block_mc = MovieClip(getChildByName("block_mc")); //var block_array:Array = new Array ; block_array.push(32); хотя разница смутно-непонятна ![]() |
|
|||||
|
Очевидно обращение из другого класса происходило раньше до создания массива.
__________________
9 из 10 голосов в моей голове сказали наркотикам "НЕТ" Мои ачивки: художник-паразит. |
|
|||||
|
Цитата:
Сначала доступ идет к переменным, а потом к полям. Хотя стоп, если на block_array.push(32); не упало после закомментирования - значит в поле был таки присвоен массив. Действительно странно ![]() Если только вы в той же функции вверху написали то раньше block_array ссылалось на переменную, определенную _ниже_, а после закоментаривания оной - стало ссылаться на поле. Вот за такую политику работы с переменными порой ненавидишь авторов ECMA Последний раз редактировалось expl; 13.12.2011 в 23:29. |
|
|||||
|
В строчке добавлена инициализация, а раньше только объявление было.
Раньше поле класса всегда было пустым. Потому что массив заносился в локальную переменную, а сейчас сразу при объявлении там сидит массив.
__________________
9 из 10 голосов в моей голове сказали наркотикам "НЕТ" Мои ачивки: художник-паразит. |
|
|||||
|
Регистрация: Apr 2009
Сообщений: 141
|
спасибо
![]() |
![]() |
![]() |
Часовой пояс GMT +4, время: 02:19. |
|
|
« Предыдущая тема | Следующая тема » |
|
|