如何从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
}
答
的addText()方法是异步的,这意味着你不能简单地调用它,你需要等待事件监听器返回一个值。
我不知道为什么你会觉得需要附上所有这些功能,它不是很清晰,我怀疑这是必要的。你也错过了很多分号...
在任何情况下,我看不到在哪里调用了formatMessage()方法,它似乎是“数字”变量被定义的唯一地方。
答
您可以在函数范围之外创建一个变量。
private var num:int;
然后在您addText函数,一个值分配给变量:
num = infoObject.info.code;
然后在您onFullScreen功能,访问num变量:
alert.alert("Error", num);
此代码不是有效的Java。为什么问题被标记为Java? –