![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|
|
|||||
|
Регистрация: Oct 2006
Адрес: Москва
Сообщений: 889
|
переопределил SimpleButton под свои нужны, но всплыла ошибка, кнопка не воспринимает нажатия, в чем может быть трабл, событие доходит до контейнера и затыкается, у контейнера mouseChildren указан
package libraries.ui { import flash.display.DisplayObject; import flash.display.SimpleButton; import flash.display.Sprite; public class CustomButton extends SimpleButton { public static const ROUND_LEFT:String = 'left'; public static const ROUND_RIGHT:String = 'right'; public static const ROUND_LEFT_RIGHT:String = 'left right'; public static const ROUND_NONE:String = 'none'; /** * * @param button объект типа SimpleButton, из которого кнопка возьмет все стейты * @param leftRight указатель, ROUND_LEFT - закругление слева, ROUND_RIGHT - закругление справа, ROUND_LEFT_RIGHT - закругление и слева и справа, если оставить пустым то без закруглений * */ public function CustomButton(button:SimpleButton, leftRight:String = ROUND_NONE) { var result:Object = this.init(button, leftRight); super(result.upState, result.overState, result.downState, null); } private function init(button:SimpleButton, leftRight:String = ROUND_NONE):Object { var obj:Object = { upState: null, downState: null, overState: null }; var l:DisplayObject, r:DisplayObject, b:DisplayObject; if(leftRight == ROUND_NONE) { obj.upState = button.upState; obj.downState = button.downState; obj.overState = button.overState; } else if(leftRight) { var prefs:Array = ['upState', 'downState', 'overState']; l = (leftRight == ROUND_LEFT || leftRight == ROUND_LEFT_RIGHT) ? new LeftSideBut : null; r = (leftRight == ROUND_RIGHT || leftRight == ROUND_LEFT_RIGHT) ? new RightSideBut : null; b = button; for each(var pref:String in prefs) { var sp:Sprite = new Sprite; var bp:DisplayObject = b[pref]; sp.addChild(bp); if(l) { var lp:DisplayObject = l[pref]; sp.addChild(lp); bp.x = lp.width; } if(r) { var rp:DisplayObject = r[pref]; sp.addChild(rp); rp.x = bp.x + bp.width; } obj[pref] = sp; } } return obj; } } }
__________________
Коллекционирую чужие ActionScript Блоги |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Странно, что этот код вообще компилируется.
|
|
|||||
|
Регистрация: Oct 2006
Адрес: Москва
Сообщений: 889
|
ну не судите вы так строго, укажите на ошибки, все мы учимся(всю жизнь), кто-то больше кто-то меньше...
у меня задача следующая, есть кнопки, добавлены с помощью swc, в ним могут быть добавлены закругленные уголки слева или справа или вообще отсутствовать..
__________________
Коллекционирую чужие ActionScript Блоги |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Дело не в суждении, дело в том, что обычно компилятор не допускает обращений к this до выполнения конструктора. Кроме того, SimpleButton вроде бы не является DisplayObjectContainer-ом (я им не пользуюсь, поэтому и не знаю), посему события пролетают мимо.
|
|
|||||
|
Регистрация: Oct 2006
Адрес: Москва
Сообщений: 889
|
хмм по поводу this понял, хотя конечно лично у меня ошибок ни когда не возникало, для меня this как минимум лишнее упоминание того то я обращаюсь к свойству или методу данного класса, а не к переменной... по поводу this на самом деле на форуме как Вы сами знаете уже столько было тем поднято... но если лучше не писать в конструкторе то не буду...
ну а по теме, я нарисовал во Flash IDE кнопки, и импортнул их в actionscript, при импорте Flash IDE мне было указано что они наследуются от SimpleButton. те кнопки, которые я собираю через данный класс нормально работают и взаимодействуют с событиями а которые собираются через этот класс нет.
__________________
Коллекционирую чужие ActionScript Блоги |
|
|||||
|
стервочка (я мужик)
|
дело не в том, что Вы написали this а в том, что обращаетесь к свойству объекта, до того как отработали все его конструкторы.
|
|
|||||
|
Я не вижу подписанного события)
__________________
Тут мужик танцует и поёт про флэш |
![]() |
![]() |
Часовой пояс GMT +4, время: 00:33. |
|
|
« Предыдущая тема | Следующая тема » |
|
|