![]() |
|
||||||||||
|
|||||
|
Регистрация: Oct 2006
Адрес: Волгодонск
Сообщений: 182
|
Добрый день, необходимо в AS2 классе создать событие и подписаться на него...
class work_area_class extends MovieClip {
private var flag:Boolean=false;//флаг для проверки зажатия средней клавишы
function work_area_class() {
AsBroadcaster.initialize(this);
this.onEnterFrame=function(){
if (Key.isDown(4)==true&&flag==false) {//если нажали В ПЕРВЫЙ РАЗ
flag=true;//флаг для того чтобы событие не гененрировалось
//постоянно, а только при первом нажатии
this.broadcastMessage("onMiddle");
}
if (Key.isDown(4)==false&&flag==true) {//если ОТЖАЛИ
flag=false;
this.broadcastMessage("offMiddle");
}
}
this.addListener(this);
this.onMiddle=function(){
trace("нажата");
}
this.offMiddle=function(){
trace("ОТЖАТА");
}
}
}
There is no method with the name 'addListener'. this.addListener(this); There is no property with the name 'onMiddle'. this.onMiddle=function(){ There is no property with the name 'offMiddle'. this.offMiddle=function(){ Помогите разобраться в чем ошибка? (кроме как в ДНК) |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Кто вас так классы научил называть?
Смотрите темы про EventDispatcher на форуме. |
|
|||||
|
Регистрация: Oct 2006
Адрес: Волгодонск
Сообщений: 182
|
Да, собственно, говоря никто не учил...
Так, с миру по нитке, и на основании своего собственного опыта. В теле программы (или как это назвать, короче на 1 кадре) этот вариант работает... А за такое я даже не слышал. Сейчас буду искать. Кстати в хелпе на сам Флеш 8 ссылка на EventDispatcher отсутствует полностью... ![]() Последний раз редактировалось GFreemen; 21.09.2007 в 21:50. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Вы хоть один стандартный класс видели, чтобы так назывался?
|
|
|||||
|
Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
|
Ну и еще кое-что надо дописать - то, что будет добавлено бродкастером / диспатчером. У вас и ругается - нет свойств и методов.
А сажать проверку на энтерфрейм.. мм.. Последний раз редактировалось Kikasso; 21.09.2007 в 21:48. |
|
|||||
|
Регистрация: Oct 2006
Адрес: Волгодонск
Сообщений: 182
|
Всем спасибо.
1)Название класа не соответствует букве и духу ООП - но главное что бы работало. Для себя делаю - мне так понятнее. 2)Добавил И, о, чудо - все работает. 3)А чем не нравится проверка нажатия в onEnterFrame? |
|
|||||
|
Banned
[+1 08.05.08]
[+4 14.04.08] [+1.3 02.05.08] Регистрация: Oct 2006
Адрес: кагбэ Киеф!!1
Сообщений: 1,473
|
нагружает комп. Пользуйся событием object.onKeyDown.
|
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
Чтобы отловить событие нажатия колесика мыши, без onEnterFrame или setInterval не обойтись, так же как и при отлове нажатия правой кнопки мыши, левую можно словить onMouseDown + Key.isDown.
|
|
|||||
|
Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
|
А так не лучше?
class WorkArea extends MovieClip {
//радиовещание
public var addListener:Function;
public var removeListener:Function;
public var broadcastMessage:Function;
//флаг для проверки зажатия средней клавишы
private var flag:Boolean=false;
function WorkArea() {
AsBroadcaster.initialize(this);
this.addListener(this);
}
private function onEnterFrame():Void{
//..
}
private function onMiddle():Void{
//..
}
private function offMiddle():Void{
//..
}
Последний раз редактировалось Kikasso; 22.09.2007 в 13:19. |
|
|||||
|
Регистрация: Oct 2006
Адрес: Волгодонск
Сообщений: 182
|
2 Kikasso
Простите, вы предлагаете onEnterFrame(),onMiddle(),offMiddle() вынести за перделы тела функции WorkArea()? Попребовал:Attribute used outside class. private function onEnterFrame():Void{ и т.д. Может быть я что-то неправильно записал... Но по-любому, что изменится если onEnterFrame() будет проверять нажатие кнопки вне WorkArea() или в ней? |
![]() |
![]() |
Часовой пояс GMT +4, время: 09:31. |
|
|
« Предыдущая тема | Следующая тема » |
|
|