Flex Data Binding в чистом AS3 проекте
September 6, 2009 – 6:23 pmВсе “знают” или покрайней мере слышали, что флексовый байндинг не работает в ActionScript 3 проектах, или слышали что он работает, но при этом занимает много места. Из за этого было написано, некоторое количество велосипедов(не мной — другими людьми, если поискать то решения 3 точно можно найти).
Но стороние решения — это плохо, у нас теряется связь с flex проектами.
Года полтора назад передомной встала задача, использовать одни и теже классы в AS3 проекте и во flex проекте, а т.к. большая часть этих классов была обычными байндабл VO, то приходилось в AS3 проекте просто вырезать метатег [Bindable] или попросту делать клонов нужных VO. Благо проект был совсем небольшим и на эти неудобства можно было закрыть глаза.
На днях я таки решил снова попробовать подключить байндинг в AS3 проект, все получилось и на радость мне все оказалось очень хорошо — flexframework доработали и убрали лишние зависимости, теперь флешка с включенным байндингом занимает около 5 кб (релиз версия)!
вот простой пример кода:
package { import flash.display.Sprite; import flash.display.StageAlign; import flash.display.StageScaleMode; import flash.events.MouseEvent; import mx.binding.utils.BindingUtils; [SWF(backgroundColor="#ffffff")] public class DataBindingSample extends Sprite { [Bindable] public var stageY:Number = 0; [Bindable] public var stageX:Number = 0; private var circle:Sprite; public function DataBindingSample() { stage.scaleMode = StageScaleMode.NO_SCALE; stage.align = StageAlign.TOP_LEFT; circle = new Sprite(); circle.graphics.beginFill(0x55aaFF,1); circle.graphics.drawCircle(0,0,10); circle.graphics.endFill(); addChild(circle); BindingUtils.bindProperty(circle,"x", this, "stageX"); BindingUtils.bindProperty(circle,"y", this, "stageY"); stage.addEventListener(MouseEvent.MOUSE_MOVE, changePosition); } protected function changePosition(event: MouseEvent): void { stageX = event.stageX; stageY = event.stageY; } } } |
Скомпилированый пример:
Flex Data Binding in AS3 project sample. You need to install adobe flash player 10 to view this content
Всем удачного кодирования!
5 Responses to “Flex Data Binding в чистом AS3 проекте”
Не совсем понял, а как вы заставили работать тег биндинга в чистом as3-проекте?
By DataGreed on Sep 13, 2009
Возможно, проект компилится все же с помощью Flex SDK, который понимает этот тэг?
By Рост on Sep 24, 2009
Здравствуйте!
Спасибо за рецепт.
Мне его подсказали на весеннем flash gamme.
Хотел бы уточнить.
Вы пользуетесь для компиляции flex_sdk_3 или flex_sdk_4?
В июле пробовал сделать то же самое в четвертом. Не получалось.
By razukrashka on Sep 29, 2009
3й, 4й пока не трогал
By Ilja on Sep 29, 2009
Спасибо.
Скачал последнюю 4-ку. Забиндить не удалось. Не стал вдаваться в подробности.
By razukrashka on Sep 29, 2009