![]() |
|
||||||||||
|
|||||
|
Регистрация: Jan 2010
Сообщений: 187
|
Здраствуйте. Пишу арканоид.
В главном классе добавляется класс ракетки и класс шарика. private var _platform:Platform; private var _ball:Ball; .... _platform = new Platform(); addChild (_platform); _ball = new Ball(); _ball.setPlatform(_platform); addChild (_ball); private var platform:Platform; .... public function setPlatform(platformObj:Platform):void { platform = platformObj; } .... // Столкновение с platform if (platform.hitTestPoint(ball.x, ball.y, true)) { speedY = -3; } Но вот я захотел сделать несколько областей в платформе, чтобы отскоки были разными в зависимости от попадания на область. Встроил в муви-клип Platform несколько областей-маячков hit_place. Проименовал их в instance name hit1, hit2, hit3 И попробовал сделать так: но ту-же получил ошибку: Error: Access of possibly undefined property hit1 through a reference with static type Platform. Подскажите, как это побороть? |
|
|||||
|
Регистрация: Jan 2010
Сообщений: 187
|
Наследовал Sprite
Поправил на но не помогло. Вот так тоже не получилось Пишет: Не удалось найти свойство hit1 в Platform; отсутствует значение по умолчанию. Хотя десять раз перепроверил. "hit1" на месте |
|
|||||
|
Регистрация: Jan 2009
Сообщений: 1,651
|
Не понимаю, как у тебя Platform может наследовать MovieClip или Sprite, если ты говоришь: "Встроил в муви-клип Platform несколько областей-маячков hit_place. Проименовал их в instance name hit1, hit2, hit3". Ведь тогда у тебя Platform должен наследовать вот тот самый муви-клип куда ты встроил hit1 и т.д.
А, стоп. Ты не в FlashDevelop работаешь, не используешь swc с библиотекой символов. Хм.. но тогда должно все работать. Ну а вот так trace (platform.getChildByName("hit1")) что выведет?
__________________
мой пустой блог |
|
|||||
|
Регистрация: Jan 2010
Сообщений: 187
|
Выводит null.
Я, возможно, немного запутался. Использую FlashDevelop. С swc для графики из Flash IDE. Во Flash IDE в библиотеке я создал мувиклип platform. AS Linkage называется Platform_mc. Внутри этого мувиклипа, помимо картинки самой ракетки - несколько мувиклипов hit_place, названные в instance name hit1, hit2 итд. |
|
|||||
|
Регистрация: Jan 2010
Сообщений: 187
|
Хороший вопрос.
Я размышлял так. Я в самом начале в главном классе пишу После этого, значит, у меня начинает выполнятся код класса Platform. (извиняюсь что я так криво пишу. я с этими классами только пытаюсь разобраться) Так вот. И в классе Platform у меня есть такое: И после этого, полагал я - всё, что внутри этого Platform_mc есть - вместе с подклипами hit1, hit2... - всё это должно подгрузиться. Разве нет? |
|
|||||
|
Регистрация: Jan 2009
Сообщений: 1,651
|
Не так. Есть два основных способа использовать символы из swc в FD.
Метод 1. Мувик с кодом Platfrom наследует напрямую Platform_mc из swc бибилотеки. Все именнованные символы из Platform_mc доступны напрямую. Метод 2. package { public class Platfrom extends Sprite { public var mc:MovieClip; function Platfrom(){ mc = new Platfrom_mc(); addChild(mc); } } } У тебя судя по всему, что-то типа второго метода. Но только platform_mc ты держишь в _platfrom, что, судя по "_" - приватное свойство, и другие объекты к нему доступа не имеют.
__________________
мой пустой блог |
|
|||||
|
Регистрация: Jan 2010
Сообщений: 187
|
Всё. Понял. Заработало. Спасибо огромное!
|
![]() |
![]() |
Часовой пояс GMT +4, время: 11:57. |
|
|
« Предыдущая тема | Следующая тема » |
|
|