如何从as3函数中获取变量而不使用get,set方法?

问题描述:

海我越来越麻烦以检索从功能(addText)的值。我从另一个功能onFullScreen()。我不知道我该怎么办这个叫,请帮帮我吗?在这里,我附上我的代码如何从as3函数中获取变量而不使用get,set方法?

private function addText() 
    { 


     nc = new NetConnection(); 
     nc.addEventListener(NetStatusEvent.NET_STATUS, ncOnStatus); 



     function ncOnStatus(infoObject:NetStatusEvent) 
     { 
      trace("nc: "+infoObject.info.code+" ("+infoObject.info.description+")"); 

      if (infoObject.info.code == "NetConnection.Connect.Success") 
      { 
       initSharedObject(chatSharedObjectName); 
      } 


     } 
     function formatMessage(chatData:Object) 
     { 

      trace("room"+chatData.message); 
      number = chatData.txtalign;//i want to retrive the value of number 
      number.toString(); 
      return number; 


     } 
     function syncEventHandler(ev:SyncEvent) 
     { 
      var infoObj:Object = ev.changeList; 

      // if first time only show last 4 messages in the list 
      if (lastChatId == 0) 
      { 
       lastChatId = Number(textchat_so.data["lastChatId"]) - 1; 
       if (lastChatId < 0) 
        lastChatId = 0; 
      } 

     } 

     function connectSharedObject(soName:String) 
     { 


      textchat_so = SharedObject.getRemote(soName, nc.uri) 

      // add new message to the chat box as they come in 
      textchat_so.addEventListener(SyncEvent.SYNC, syncEventHandler) 

      textchat_so.connect(nc) 


     } 


     function connectSharedObjectRes(soName:String) 
     { 

      connectSharedObject(soName) 
      trace(soName) 
     } 

     function initSharedObject(soName:String) 
     { 
      // initialize the shared object server side 
      nc.call("initSharedObject", new Responder(connectSharedObjectRes), soName) 


     } 
        } 

我在另一个函数中使用该变量,但我无法检索该值。

private function onFullScreen(event:FullScreenEvent):void 
    { 
         mediaContainer.addMediaElement(alert); 
      alert.alert("Error",number);// if i cannot retrive the value hnumber here 
      } 
+1

此代码不是有效的Java。为什么问题被标记为Java? –

的addText()方法是异步的,这意味着你不能简单地调用它,你需要等待事件监听器返回一个值。

我不知道为什么你会觉得需要附上所有这些功能,它不是很清晰,我怀疑这是必要的。你也错过了很多分号...

在任何情况下,我看不到在哪里调用了formatMessage()方法,它似乎是“数字”变量被定义的唯一地方。

您可以在函数范围之外创建一个变量。

private var num:int; 

然后在您addText函数,一个值分配给变量:

num = infoObject.info.code; 

然后在您onFullScreen功能,访问num变量:

alert.alert("Error", num);