2011-12-12 93 views
0

我在Flex手冊中找到了MXML和ActionScript中的代碼。問題是應該將「val」變量作爲參數傳遞給updateMyString()函數調用語句,但它不會在代碼中發生。這是爲什麼?帶有FLEX代碼的函數參數

<?xml version="1.0"?> 
<!-- binding/BindSetterAS.mxml --> 
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
    xmlns:s="library://ns.adobe.com/flex/spark" 
    xmlns:mx="library://ns.adobe.com/flex/mx"> 
    <s:layout> 
     <s:VerticalLayout/> 
    </s:layout> 
    <fx:Script> 
     <![CDATA[ 
      import mx.binding.utils.*; 
      import mx.events.FlexEvent; 
      // Method called when myTI.text changes. 
      public function updateMyString(val:String):void { 
       myTA.text = val.toUpperCase(); 
      } 
      <!-- Event listener to configure binding. --> 
      public function mySetterBinding(event:FlexEvent):void { 
       var watcherSetter:ChangeWatcher = 
        BindingUtils.bindSetter(updateMyString, myTI, "text"); 
      } 
     ]]> 
    </fx:Script> 
    <s:Label text="Bind Setter using setter method"/> 
    <s:TextInput id="myTI" 
     text="Hello Setter" /> 
    <s:TextArea id="myTA" 
     initialize="mySetterBinding(event);"/> 
</s:Application> 

回答

0

var watcherSetter:ChangeWatcher = BindingUtils.bindSetter(updateMyString, myTI, "text");

的功能是這樣的:

bindSetter(functionToCall, objectToBind, PropertyToBind)

所以,你實際上是結合myTI.text。這被作爲參數傳遞給functionToCall,即updateMyString。得到它了?

+0

此評論是沒有問題的。它驚人地與這個評論一起工作。 – chrisiek

+0

當我刪除註釋 –

+0

時,它對我來說非常完美,我知道它可以正常工作,但是它是如何發生的,我們沒有將參數傳遞給函數...並且它仍然有效。 – chrisiek