![]() |
|
||||||||||
|
|||||
|
Регистрация: Jun 2002
Адрес: неустойчивое
Сообщений: 30
|
Вот есть класс. Наследую от MC, определяю свойство [Bindable]х, делаю таскабельность, связываю с NumericStepper - из NumericStepper инфа идёт (клипчик ездит по х), обратно нет. Вопрос: что ещё нужно сделать для нормального двустороннего связывания?
![]() class BigLaughableBlueBall extends MovieClip
{
[Bindable]
function set x (n:Number):Void {_x = n;}
function get x ():Number {return _x;}
private var dragged:Boolean;
function onPress ()
{
dragged = true;
}
function onRelease ()
{
dragged = false;
}
function onReleaseOutside ()
{
onRelease ();
}
function onMouseMove ()
{
if (dragged)
{
x = _parent._xmouse;
_y = _parent._ymouse;
updateAfterEvent ();
}
}
}
|
|
|||||
|
Flash Aксакал
Регистрация: Jun 2005
Сообщений: 636
|
определить что у тебя байндинг 2ways.
у тебя в закладке компонентинспектора, где ты определяешь байндинг есть direction - там должно стоять in / out. но скорее всего у тебя просто байндинг не знает к какому евенту присоедениться у твоего класса import mx.events.EventDispatcher;
class BigLaughableBlueBall extends MovieClip {
// EventDispatcher implementation
public var dispatchEvent:Function;
public var addEventListener:Function;
public var removeEventListener:Function;
public function BigLaughableBlueBall () {
EventDispatcher.initialize (this);
}
[Bindable]
[ChangeEvent("newposition")]
public function set x (n : Number) : Void {
_x = n;
}
public function get x () : Number {
return _x;
}
private var dragged : Boolean;
public function onPress () {
dragged = true;
}
public function onRelease () {
dragged = false;
}
public function onReleaseOutside () {
onRelease ();
}
public function onMouseMove () {
if (dragged) {
if (x != _parent._xmouse) {
x = _parent._xmouse;
dispatchEvent ( {type: 'newposition'} );
} // end if
_y = _parent._ymouse;
} // end if
}
}
Последний раз редактировалось 7thsky™; 29.09.2005 в 09:44. |
|
|||||
|
Регистрация: Jun 2002
Адрес: неустойчивое
Сообщений: 30
|
Спасибо, всё работает
![]() Ага, то есть сам он не догадывается в результате действий с панелькой binding, что нужно придумать "событие"... + нигде явно не указана - ни в NumericStepper, ни в UIComponent и т.п. - явная имплементация EventDispatcher Ох, мутно всё... |
|
|||||
|
Flash Aксакал
Регистрация: Jun 2005
Сообщений: 636
|
все компоненты наследуют от UIObject, там все это и реализованно
Если ты хочешь пользоваться binding, сам binding присоединяется к связующим компонентам через event'ы в классе NumericStepper то же наверно указанно какое свойство [bindable] и какой event. Вообще все что ты реализуешь через панель Component Inspector, после компилиции преобразуется в что-то подобное import mx.data.binding.*; // create data binding var src:EndPoint = new EndPoint (); src.component = your_ClassInstance; src.property = 'x'; src.event = 'newposition'; var dest:EndPoint = new EndPoint (); dest.component = your_NumericStepperInstance; dest.property = 'value'; dest.event = ''; // save reference var b:Binding = new Binding (src, dest, a, true); Последний раз редактировалось 7thsky™; 29.09.2005 в 11:47. |
|
|||||
|
Цитата:
|
![]() |
![]() |
Часовой пояс GMT +4, время: 11:00. |
|
|
« Предыдущая тема | Следующая тема » |
|
|