Mercy
Mercy

Reputation: 1860

How to Getting the Variable from Function in as3 without using get ,set method?

Hai am Getting trouble to retrive the values from function(addText).i Called from another function onFullScreen().I dont know how Can i do this,Kindly Help me?Here i attach my Code

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)


        }
                    }

i using the variable in another function ,but I cannot retrive the Value.

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

Upvotes: 0

Views: 366

Answers (2)

PatrickS
PatrickS

Reputation: 9572

The addText() method is asynchronous, meaning that you can't simply call it , you need to wait for the event listener to return a value.

I'm not sure why you would feel the need to enclose all these functions, it's not very legible and I doubt it's necessary. You're also missing quite a few semi colons...

In any case , I couldn't see where the formatMessage() method was called, it seems that's the only place where the "number" variable gets defined.

Upvotes: 1

crooksy88
crooksy88

Reputation: 3851

You could create a variable outside the scope of the functions.

private var num:int;

Then in your addText function, assign a value to the variable:

num = infoObject.info.code;

Then in your onFullScreen function, access the num variable:

 alert.alert("Error", num);

Upvotes: 0

Related Questions