|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Jan 2016
Сообщений: 32
|
Проблема с родительскими и дочерними объектами
Всем привет, у меня следующая проблема.
Есть символ "hero". Внутри него есть ещё символ - "leftM". Проблема в том, что я не могу обратиться к "hero.leftM". Т.е. символ "hero" добавлен на сцену с помощью addChild, и к "hero" обратиться могу, но к "hero.leftM" - нет. Может нужно "leftM" тоже на сцену добавить с помощью addChild? Но, с другой стороны, он же добавляется вместе с "hero" ... Спасибо. |
|
|||||
Наверное вы забыли назначить имя Вашему символу в свойствах.
|
|
|||||
Регистрация: Jan 2016
Сообщений: 32
|
Нет, имя есть (
|
|
|||||
Регистрация: Oct 2006
Сообщений: 2,281
|
Если все добавляется через код, то к детям обращаться надо так:
не забыв, предварительно выставить name у ребенка. |
|
|||||
Регистрация: Jan 2016
Сообщений: 32
|
эм, если к детям мы обращаемся по имени, то к чему мы обращаемся например так: "simvol1.simvol2.svoystvo"? Через точку то есть.
|
|
|||||
Регистрация: Apr 2009
Сообщений: 409
|
Flash автоматически записывает в переменные всех детей вложенных в мувик, можете сделать так же)
hero.leftM=hero.getChildByName("leftM"); |
|
|||||
Регистрация: Oct 2006
Сообщений: 2,281
|
Вообще говоря через точку можно обращаться только к детям, внутри символов, созданных в flash ide т.к. в этом случае ide сама расширяет базовые классы и дописывает им свойства с именами детей.Для DO, которые ты сам создаешь/компонуешь в коде этого не происходит, поэтому надо обращаться по имени ребенка
var p:Sprite=new Sprite(); var child:Sprite=new Sprite(); p.addChild(child); child.name="child"; trace(p.child);//ошибка компиляции, свойства child нет у спрайта trace(p.getChildByName("child"));//[object Sprite] Цитата:
|
|
|||||
Регистрация: Jan 2016
Сообщений: 32
|
та у меня такая проблема, что обращение ваще не выходит, никак :/
stage.addEventListener(Event.ENTER_FRAME, work); function work (event:Event) { for (var b = boxes.length; b > 0; b-- ) { var boxN = boxes[b-1]; if (boxN.hitTestObject(hero.leftM)) { trace('yeh') } } } at flash.display:isplayObject/_hitTest() at flash.display:isplayObject/hitTestObject() at _fla::MainTimeline/work() |
|
|||||
Сдается мне, что на этом символе (который там leftM в библиотеке), надо правой кнопкой - export for actionscript. И после этого к нему можно будет обращаться в коде
п.с. for (var b = boxes.length; b > 0; b-- ) { var boxN = boxes[b-1]; if (boxN.hitTestObject(hero.leftM)) { trace('yeh') } } |
|
|||||
Регистрация: Oct 2006
Сообщений: 2,281
|
Цитата:
|
Часовой пояс GMT +4, время: 22:42. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|