![]() |
|
||||||||||
|
|||||
|
Здравствуйте. У меня есть задача: приаттачить из библиотеки несколько символов, которые зависят от определённого массива с данными. Всё просто, пишу такой код:
var aData:Array = ['label1','label2','label3']; var Brand:MovieClip = _root.createEmptyMovieClip( 'Brand', _root.getNextHighestDepth() ); for( var iCounter = 0; iCounter < aData.length; iCounter++ ){ var mClip = Brand.attachMovie( '_button', 'Level-1-' + iCounter, _root.getNextHighestDepth() ); mClip._x = 0; mClip._y = 37 + iCounter; mClip._label.text = aData[ iCounter]; } |
|
|||||
|
Исправил на Brand — проблемы не решило (
|
|
|||||
var aData:Array = ['label1','label2','label3']; var Brand:MovieClip = _root.createEmptyMovieClip( 'Brand', _root.getNextHighestDepth() ); for( var iCounter = 0; iCounter < aData.length; iCounter++ ){ var mClip = Brand.attachMovie( '_button', 'Level-1-' + iCounter, Brand.getNextHighestDepth() ); mClip._x = 0; mClip._y = 37*iCounter; mClip._label.text = aData[iCounter]; } Последний раз редактировалось amexdesign; 21.12.2009 в 10:09. |
|
|||||
|
Модрон-ветеринар
|
У вас здесь шаг всего один пиксель:
Вероятно, они практически накладываются друг на друга, и если есть непрозрачный фон, вы этого можете не заметить. |
|
|||||
|
Смещение на пиксель — это у меня от проверки осталось, там, конечно же, умножение должно быть. Но даже в таком случае символы полупрозрачные и должны были наложиться.
Скопировал код amexdesign и заработало. Только не могу понять почему, он точно такой же, кроме того, что Brand подставлено, вместо _root. |
|
|||||
|
Модрон-ветеринар
|
Если оставить _root, то все так и будет - будет только последний отображаться.
Вы вообще понимаете метод getNextHighestDepth() и для чего он служит? Если не совсем, впишите в цикле строку и посмотрите, что отобразит trace. Если опять не очень понятно, то скажу: Когда вы первый раз аттачите _button, то для задания уровня используете _root.getNextHighestDepth(), который возвращает "1" (Поскольку в _root на уровне "0" уже находится мувик Brand). То есть аттачите в Brand, а номер свободного уровня ищете в _root. Поскольку на _root это "1", в Brand аттач происходит на уровень 1. Потом, циклом вы аттачите в Brand еще один мувик _button, но следующий свободный уровень ищете не в Brand, а опять-таки в _root. А на _root 1-й уровень как был свободным, так и остался, ведь вы его не заняли, аттачили-то на 1-й уровень в Brand. Поэтому _root.getNextHighestDepth() вам честно возвращает опять "1", и на 1-й уровень в Brand лепится уже вторая _button. А ведь уровень-то уже занят предыдущей _button! Поэтому предыдущая вытесняется новым. И т.д., и в результате остается только последний приаттаченный мувик на уровне "1" мувика Brand. Все это равносильно тому, что вы просто напишите такую строку: то есть 1 вместо _root.getNextHighestDepth() Последний раз редактировалось mooncar; 21.12.2009 в 11:43. |
|
|||||
|
Спасибо за доходчивое объяснение!
Действительно стало понятно :-) |
![]() |
![]() |
Часовой пояс GMT +4, время: 07:01. |
|
|
« Предыдущая тема | Следующая тема » |
|
|