確定的人我真的需要你在這個超級大腦,我已經拔出我的所有頭髮,我只是想把毛巾扔在這個,好吧,我有一個itemrender組件,你可以看到下面問題綁定裏面itemRender
<?xml version="1.0" encoding="utf-8"?>
<mx:HBox xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" horizontalScrollPolicy="off"
creationComplete="hbox1_creationCompleteHandler(event)">
<mx:Script>
<![CDATA[
import events.ColorsEvent;
import mx.binding.utils.BindingUtils;
import mx.binding.utils.ChangeWatcher;
import mx.events.ColorPickerEvent;
import mx.events.FlexEvent;
import mx.utils.ObjectProxy;
import utils.BindingUniform;
private var _op:ObjectProxy;
private var cw:ChangeWatcher;
public function get value():String
{
return data.color;
}
override public function set data(value:Object):void
{
super.data = value;
cp.selectedColor = data.color;
}
protected function cp_changeHandler(event:ColorPickerEvent):void
{
_op[data.id] = event.color;
}
protected function hbox1_creationCompleteHandler(event:FlexEvent):void
{
if(_op == null){
_op = BindingUniform.op;
cw = BindingUtils.bindSetter(dispatchColorChange, _op, data.id);
}
}
protected function dispatchColorChange(color:uint):void
{
cp.selectedColor = color;
dispatchEvent(new ColorsEvent("colorChanged", color, data.id, true, true));
}
]]>
</mx:Script>
<mx:Text width="145"><mx:text>{data.value}</mx:text></mx:Text>
<mx:ColorPicker id="cp" dataProvider="{parentDocument.colorsDP}"
valueCommit="{data.color = cp.selectedColor}"
change="cp_changeHandler(event)" editable="false"/>
<mx:Label id="colorLb" text="{cp.selectedItem.label}"/>
</mx:HBox>
的想法是,當我改變顏色ColorPicker中的一個,則改變事件必須在我_OP objectProxy對象更改動態變量。
好吧,當我滾動的顏色仍然在各自的顏色拾取,這是確定的名單,我的問題出現在綁定,當itemRender creationComplete事件火災,我做一個bindsetter的變量,這樣我可以調度當事件物業改變。
爲什麼我需要綁定的原因是因爲用戶有時會加載以前保存的模型,我希望變量保持綁定,以便colorpicker能正確選擇顏色,希望有道理。
好吧,事情是第一個可見的行工作就好了,但是當我滾動列表,並嘗試更改colorpicker中的顏色變化,但我的綁定消失了,如果我滾動回到頂部第一個也沒有綁定不了,我真的不知道還有什麼要做,我只是跳了一些人做了類似的事情,或只是有解決辦法,請幫助我,如果可以的話,我真的需要它,我認爲我的大腦會爆炸,爲什麼在Flex中綁定非常困難?謝謝!!!
希望我可以幫助你,但它是很難理解你的問題代替它。嘗試把它分解成更小的部分。 – 2010-02-09 07:33:21