![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Sep 2009
Сообщений: 68
|
Есть такая задача.
Создал мувик - внутри 2 объекта: шейп и динамический текст-инпут (city_name). нужно передавать мувику координаты x и y,а также название города, ну и скрипт должен положить этот мувик на stage. Как я понимаю, нужно создать класс, слинковать мувик с классом, а потом на основной сцене уже вызвать инстанс класса и передать ему параметры? Не могу понять как передать координаты, если мы обращаемся к классу, а не объекту не матерится но и не работает. И как сделать, чтобы я мог обратьсся изнутри класса к city_label и назначитть туда значение? Что-то типа |
|
|||||
|
а где вы собсно к классу обращаетесь?
для определения полей и методов класса юзают static
__________________
http://cleptoman.free-lance.ru achivements: дважды благословлен на воровство. осеяный благодатью |
|
|||||
|
Для начала, собирайте все программно.
Затем делаем класс, расширяем его от спрайта. Как я понял, это City будет. Внутри создаем шейп и что у вас там, затем создаем сеттеры/геттеры/просто методы (выбрать по вкусу). И в главном классе программы пишем то, что вы написали в своем посте, во второй его части. Судя по всему, сейчас пойдут вопросы про классы и как писать не в кадрах...
__________________
тут я Последний раз редактировалось КорДум; 25.10.2010 в 20:19. |
|
|||||
|
Регистрация: Sep 2009
Сообщений: 68
|
Смысл всего этого в том, что необходимо будет создать пару десятков мувиков на stage.
Где-то лажа, но не пойму где package{ import flash.display.MovieClip; public class CityNew extends MovieClip{ private var x_coord:Number; private var y_coord:Number; public function CityNew(){ this.x_coord = 100; this.y_coord = 100; init(); } public function set Xc(x_c:Number):void{ this.x_coord = x_c; } public function get Xc():Number{ return x_coord; } public function set Yc(y_c:Number):void{ this.y_coord = y_c; } public function get Yc():Number{ return y_coord; } public function init():void{ this.x = x_coord; this.y = y_coord; } } } Вот так работает, но нельзя передать x и y, матерится 1061: Call to a possibly undefined method X_c through a reference with static type CityNew. Тогда сделал Xc и Yc статическими, но теперь оно не может добраться до x_coord и y_coord. Или же подразумевается что в при линковании, все методы класса должны быть статическими? Где я неправ? Последний раз редактировалось Castro; 26.10.2010 в 12:48. |
|
|||||
|
если вы обращаетесь к полям класса, то статик, если к его экзепляру, то без статик
в вашем случае нужно без статик и не плохо бы создать экземпляр и его уже мучить и зачем вам Xc и остальные свойства избыточные, если все это есть у класса предка? upd: пардон, увидел, что создаете, но не понятно как вы обращаетесь к свойствам
__________________
http://cleptoman.free-lance.ru achivements: дважды благословлен на воровство. осеяный благодатью Последний раз редактировалось cleptoman; 26.10.2010 в 13:14. |
|
|||||
|
Регистрация: Sep 2009
Сообщений: 68
|
Спасибо
Добавлено через 34 минуты А из самого класса как обратится к текстовому полю в мувику (textFld)? Например мне нужно это для инициализации начальны данных, типа дефолтная стрка Добавлено через 1 час 0 минут Общая структура - файлу 1.fla назначен главный класс Main, в котором вызывается var city:City = new City(); city.x = 80; city.y = 100; city.txtFld.text = 'Tarara'; addChild(city); package{ import flash.display.MovieClip; import flash.text.TextField; public class City extends MovieClip{ //public var txtFld:String; public function City(){ super(); super.x = 300; super.y = 300; } } } Валится на 1119: Access of possibly undefined property txtFld through a reference with static type City. Оно рабочее вообще, если взять этот же класс и в отдельном fla файле вызвать тектовое поле, всё будет работать Добавлено через 4 часа 19 минут Вообще без вариантов? Последний раз редактировалось Castro; 26.10.2010 в 13:42. |
|
|||||
package{ import flash.display.MovieClip; import flash.text.TextField; public class City extends MovieClip{ public var txtFld:TextField; private var defaultString:String = "bla-bla"; public function City(){ this.x = 300; this.y = 300; this.addChild(txtFld); txtFld.text = defaultString; } } }
__________________
тут я |
|
|||||
|
Регистрация: Sep 2009
Сообщений: 68
|
Был ответ
Цитата:
|
![]() |
![]() |
Часовой пояс GMT +4, время: 01:15. |
|
|
« Предыдущая тема | Следующая тема » |
|
|