![]() |
|
||||||||||
|
|
|
|||||
|
Регистрация: Dec 2009
Сообщений: 48
|
Господа, возникла очередная трудность с восприятием ООП AS3. Не совсем понятно, как можно обратится из класса к символу и применить к нему какие-либо действия. В хелпе прочитал, что для того, чтобы изменять данные - класс должен быть динамическим и что должен наследовать один из классов Sprite или MovieClip. Итак, пытаюсь...
package lib { import flash.display.Sprite; dynamic public class myTest extends Sprite { function myTest (Name:String, type:String):bool { trace("construct run"); trace(this[Name].text); } } } Вывод ошибку "1120: Access of undefined property inp." Что я делаю не так =(? Где вообще можно поглядеть информацию о структуре документа flash и о области видимости классов/функций/символов? P.s. И еще, почему нельзя создавать экземпляр класс mainclass (который грузится самым первым). Спасибо. |
|
|||||
|
У вас нет объекта, свойства или метода inp. Учитывая что вы пытаетесь вызвать метод или свойство text у объекта по ссылке inp, вы получаете ошибку. Если вы пытались трейсить строку "inp", надо было написать:
У класса String нет свойства или метода text. |
|
|||||
|
Modus ponens
|
package lib { import flash.display.Sprite; public dynamic class MyTest extends Sprite { function MyTest(name:String, type:String) { super(); trace("construct run"); trace(this[name].text); } } } Непонятно несколько вещей: - зачем делать его динамическим. - что вы ожидаете увидеть во втором трейсе - переменной по имени inp в этом классес просто нет.
__________________
Hell is the possibility of sanity |
|
|||||
|
Регистрация: Dec 2009
Сообщений: 48
|
Пардон, что не описал ситуацию подробнее... В root на первом кадре имеется input с instance name = inp. По действию, определенному из mainclass передается имя инпута и его тип в класс MyTest. Все что мне нужно, получить возможность прочесть и перезаписать значения инпут поля с именем inp.
Динамический, т.к. в моем классе помимо этого будут иметься настройки - а в данном случае я так понимаю необходимо как раз приписку dynamic делать - поправьте, если это не так. |
|
|||||
|
dynamic даёт вам право объявлять переменные, без объявления их явно.
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
|
Вот код, который объявляет слушателей клавиатуры и двигает movieclip mcClip
Bally.as package com.person { import flash.display.MovieClip; import flash.events.Event; import flash.events.KeyboardEvent; import flash.ui.Keyboard; import flash.display.Stage; public class Bally extends MovieClip { public function Bally() { stage.addEventListener(KeyboardEvent.KEY_DOWN, up); stage.addEventListener(KeyboardEvent.KEY_UP, cooling); addEventListener(Event.ENTER_FRAME, onEF); var upObject:Boolean; function up(e:KeyboardEvent) { if (e.keyCode == Keyboard.UP) { upObject = true; } } function cooling(e:KeyboardEvent) { if (e.keyCode == Keyboard.UP) { upObject = false; } } function onEF(e:Event) { if (upObject) { this.y -= 20; trace("up!"); } else { this.y -= 20; trace("down"); } } } } } ![]() В библиотеке выглядит так: ![]() Добавлен на рабочий стол: ![]() Трейсы в аутпате отражаются, а мувик с места не двигается. Что я не учёл? Почему this не передаёт параметр y мувику? |
|
|||||
|
Регистрация: Mar 2012
Адрес: г.Новосибирск
Сообщений: 381
|
в поле класс надо писать com.person.Bally
базовый класс оставляем пустой нэйм Bally Добавлено через 4 минуты Цитата:
если вы переносите мувиклип на сцену из библиотеки, вы таким образом создаете экземпляр класса Bally, но обращаться к нему не можете, так как не задали Instance name. Экземпляр нужно создавать так: Последний раз редактировалось Isfet; 21.10.2012 в 07:15. |
|
|||||
|
По вашему что-то не получается.
В этом видео у него всё получилось. Просмотреть Он нарисовал прямоугольник, сделал его символом, импортировал его в actionscript. В качестве базового класса указал свой класс. Мувик вёл себя как прописано было в классе (this.scaleX при наведении курсора). Последний раз редактировалось Шурик_2; 21.10.2012 в 14:20. |
![]() |
![]() |
Часовой пояс GMT +4, время: 09:41. |
|
|
« Предыдущая тема | Следующая тема » |
|
|