Просмотр полной версии : Проблема с Bindable
Есть некий пакет:
package test {
public class one {
...
[Bindable]
public var Status:Object = {t:'t'};
...
public function change():void {
Status['t'] = '?';
}
В главном коде:
...
BindingUtils.bindProperty(Field, 'text', one.Status, 't');
...
one.Change();
И не показывается изменение в компоненте Field. Хотя, если сделать так:
...
public var Status:String = 't';
...
То работает...
В чем проблема может быть ? :(
Для оформления своего кода надо использовать теги (http://www.flasher.ru/forum/showthread.php?t=122539)
Бинд не распространяется на свойства объекта.
Silicium
03.10.2011, 09:46
Если не ошибаюсь, биндинг производится только по ссылкам. По значениям только для int (uint), String, Nubmer и Boolean
Есть же ветка по flex, какого хера в в чистый код лезем?
А кто сказал, что нельзя использовать BindingUtils в чистом AS3 приложении?
А кто сказал, что нельзя использовать BindingUtils в чистом AS3 приложении?
я о вопросе топикстартера вообще то.
А как Вы определили, что это flex код? По метатегу [Bindable] ? Я могу любой метатег использовать и сам его обрабытывать, или я что-то не углядел?
Я могу любой метатег использовать и сам его обрабытывать
Покажите пример?
Я могу любой метатег использовать и сам его обрабытывать
Любой, эт я конечно загнул, просто хотел сказать, что проблемно точно сказать Flex это код или нет
http://the33cows.com/flex/2009/09/06/flex-data-binding-in-as3-project/
Видел эту статью, не понятно как у автора заработало, исходников он не выложил
Видел эту статью, не понятно как у автора заработало, исходников он не выложил
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;
}
}
}
http://dl.************/u/6132064/binding.png
Ясно, но не суть, вопрос то был в использовании тега Bindable не по назначению, а тут то как раз все правильно
Добавлено через 6 минут
А еще точнее, о том, что по выложенному топикстартером куску кода, нельзя однозначно определить в каком из разделов должен находится топик
Ясно, но не суть, вопрос то был в использовании тега Bindable не по назначению, а тут то как раз все правильно
Добавлено через 6 минут
А еще точнее, о том, что по выложенному топикстартером куску кода, нельзя однозначно определить в каком из разделов должен находится топик
Во флексе этот тег встречал на каждом шагу, в чистом AS ни разу.
Я и GBee привели Вам примеры, я думаю не стоит быть на столько категоричным
Добавлено через 1 минуту
А в общем случае да, я с вами согласен
Я, если честно, тоже не встречал :о)) Б(ай|и)ндингом лучше не увлекаться, имхо, конечно.
Могу даже немного громче сказать: Байндинг - зло)), своего рода синтаксический сахар (http://ru.wikipedia.org/wiki/Синтаксический_сахар). Ну и с откладкой такого приложения (особенно чужого) можно полысеть)
Могу даже немного громче сказать: Байндинг - зло)), своего рода синтаксический сахар (http://ru.wikipedia.org/wiki/Синтаксический_сахар). Ну и с откладкой такого приложения (особенно чужого) можно полысеть)
Когда я только устроился в свою компанию, моей первой задачей как раз и было отладить приложение написанном на флексе, я за месяц лет на 100500 постарел))) Я бы добавил что, вообще флекс зло)))
Я бы добавил что, вообще флекс зло)))
Золотые слова)
"Каждому свое". Эх, ну да ладно, использовать или не использовать. Буду по-другому действовать :)
Попробую ответить на изначальный вопрос:
1. За то, что имена переменных написаны с заглавной, а классов - со строчной, - уволить без разговоров. Это вносит огромную путаницу в код (потому что все остальные всегда делают наоборот) и это в гораздо большей степени усложняет работу с исходниками, чем плохая архитектура или неочевидная логика, или повторение одного и того же кода.
2. Компилируйте с -keep, это вам сразу же даст представление о том, что происходит. Заодно, загляните в исходники BindingUtils. Если вы это сделаете - использовать биндинг в вашем коде всяческое желание пропадет. Смысл биндинга в том, что он генерирует код, который "оборачивает" ваш код, и перенаправляет вызовы объявленной вами функции (или доступ к объявленной вами переменной) к сгенерированому коду. Сгенерированый код плохой. Он плохой тем, что нерационально использует память создавая кучу лишних объектов. Если вы сами сделаете то же самое, но вдумчиво, вы сделаете это гораздо лучше.
Есть функция в классе, которая получает некие данных с сайта. Когда функция успешно получает данные и записывает их в переменные, мне их нужно получить. Но как...Пока только с использованием Binding...Или может есть другой способ узнать, когда функция успешно получит данные ?
Сгенерированый код плохой. Он плохой тем, что нерационально использует память создавая кучу лишних объектов. Если вы сами сделаете то же самое, но вдумчиво, вы сделаете это гораздо лучше.
Интересно, что вы думаете о Realaxy ActionScript Editor?
Интересно, что вы думаете о Realaxy ActionScript Editor?
В топку.
Добавлено через 57 секунд
Так жрать память, работать комфортно невозможно, и код скорее всего будет на том же уровне((
Сгенерированому коду не обязательно быть плохим, но когда нет возможности настроить, или изменить генератор, то возникает проблема, когда сгенерированый код не подходит для задачи, а альтернативу пилить долго. И тогда старый, плохо подходящий способ подстраивают под новую ситуацию - получаем, то что в народе называется костылями. Биндинг, это тот случай, когда костылей уже на много больше, чем самого полезного кода.
RASE - отдельная песня. Задумка хорошая, но средства для реализации, как на подбор, самые плохие.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.