A Flash Developer Resource Site

Results 1 to 6 of 6

Thread: pull data in one function from two xml urls

  1. #1
    Member
    Join Date
    Apr 2014
    Posts
    63

    pull data in one function from two xml urls

    Here is the code I'm working with (below) largely thanks to Fruitbeard. It's working just fine.

    In the function CompleteHandler it calls a xml feed in the variable surl which is

    http://" + dataCenter + ".api.mailchimp.com/1.2/?method=campaignClickStats&output=xml&apikey=" + apiKey + "&cid=" + allid;

    I want to also call a secondary XML url which would be very similar:

    http://" + dataCenter + ".api.mailchimp.com/1.2/?method=campaignStats&output=xml&apikey=" + apiKey + "&cid=" + allid;

    Therefore function linkComplete pulls data from surl XML feed. I want this function to also output data from this secondary xml url above. I've tried many different ways of trying to do so but have had no luck.

    code:

    stop();

    var dataCenter:String = "us2";
    var apiKey:String = key;

    var loader:URLLoader;
    var requester:URLRequest;
    var url:String;

    var san:XML;
    var nOfCamp:Number;
    var nOfSt:Number;
    var nOfU:Number;
    var adingSt:Number;
    var adingU:Number;
    var ssum:Number;
    var usum:Number;
    var i:Number;
    var allsub:String;
    var allid:String;
    var surl:String;

    var linkLoader:URLLoader;
    var linkTarget:URLRequest;
    var linkImport:XML;

    btn_camp.addEventListener(MouseEvent.CLICK, fl_MouseClickHandler1);

    function fl_MouseClickHandler1(event:MouseEvent):void
    {
    url = "http://" + dataCenter + ".api.mailchimp.com/1.2/?method=campaigns&output=xml&apikey=" + apiKey;
    requester = new URLRequest(url);
    loader = new URLLoader();
    loader.addEventListener(IOErrorEvent.IO_ERROR,xmlE rror,false,0,true);
    loader.addEventListener(Event.COMPLETE, completeHandler,false,0,true);
    loader.load(requester);
    }

    // *** Initial xml load complete
    function completeHandler(e:Event)
    {
    loader.removeEventListener(Event.COMPLETE, completeHandler);
    loader.removeEventListener(IOErrorEvent.IO_ERROR,x mlError);

    san = new XML(e.target.data);
    nOfCamp = san.*.subject.length();

    for (i = 0; i< nOfCamp; i++)
    {
    allsub = san.*.subject[i].text();
    allid = san.*.id[i].text();
    trace(allid);
    surl = "http://" + dataCenter + ".api.mailchimp.com/1.2/?method=campaignClickStats&output=xml&apikey=" + apiKey + "&cid=" + allid;
    m_txt.htmlText += "<a href='event:" + surl + "'>" + allsub + "</a>\n\n";
    m_txt.addEventListener(TextEvent.LINK, linkEvent,false,0,true);
    }
    }

    // *** Link text from xml - to other text box
    function linkEvent(e:TextEvent):void
    {
    trace(e.text);

    linkLoader = new URLLoader();
    linkTarget = new URLRequest(e.text);
    linkLoader.addEventListener(IOErrorEvent.IO_ERROR, xmlError,false,0,true);
    linkLoader.addEventListener(Event.COMPLETE, linkComplete,false,0,true);
    linkLoader.load(linkTarget);
    //navigateToURL(new URLRequest(e.text), "_blank");
    }

    // *** Link text load complete;
    function linkComplete(e:Event):void
    {

    linkLoader.removeEventListener(IOErrorEvent.IO_ERR OR,xmlError);
    linkLoader.removeEventListener(Event.COMPLETE, linkComplete);

    linkImport = new XML(e.target.data);
    ssum = 0;
    usum = 0;
    nOfSt = linkImport.*.clicks.length();
    nOfU = linkImport.*.unique.length();
    for (i = 0; i< nOfSt; i++) {
    adingSt = linkImport.*.clicks[i].text();
    adingU = linkImport.*.unique[i].text();
    ssum+=adingSt;
    usum+=adingU;
    var ust = usum;
    var op = ssum;
    }
    m_txt.text = "Clicks = " + op + " and " + "Unique Clicks = " + ust;

    }

    // *** Load error;
    function xmlError(e:IOErrorEvent):void
    {
    trace(e);
    }


  2. #2
    . fruitbeard's Avatar
    Join Date
    Oct 2011
    Posts
    1,780
    Hi,

    PHP Code:
    stop();

    var 
    dataCenter:String "us2";

    var 
    apiKey:String key;

    var 
    loader:URLLoader;

    var 
    requester:URLRequest;

    var 
    url:String;

    var 
    san:XML;

    var 
    nOfCamp:Number;
    var 
    nOfSt:Number;
    var 
    nOfU:Number;

    var 
    adingSt:Number;
    var 
    adingU:Number;

    var 
    ssum:Number;
    var 
    usum:Number;

    var 
    i:Number;

    var 
    allsub:String;
    var 
    allid:String;
    var 
    surl:String;
    var 
    nurl:String;

    var 
    linkLoader:URLLoader;
    var 
    linkTarget:URLRequest;
    var 
    linkImport:XML;

    btn_camp.addEventListener(MouseEvent.CLICKfl_MouseClickHandler1);

    function 
    fl_MouseClickHandler1(event:MouseEvent):void
    {
        
    url "http://" dataCenter ".api.mailchimp.com/1.2/?method=campaigns&output=xml&apikey=" apiKey;

        
    requester = new URLRequest(url);

        
    loader = new URLLoader();
        
    loader.addEventListener(IOErrorEvent.IO_ERROR,xmlError,false,0,true);
        
    loader.addEventListener(Event.COMPLETEcompleteHandler,false,0,true);
        
    loader.load(requester);
    }

    // *** Initial xml load complete
    function completeHandler(e:Event)
    {
        
    loader.removeEventListener(Event.COMPLETEcompleteHandler);
        
    loader.removeEventListener(IOErrorEvent.IO_ERROR,xmlError);

        
    san = new XML(e.target.data);
        
    nOfCamp san.*.subject.length();

        for (
    0inOfCampi++)
        {
            
    allsub san.*.subject[i].text();
            
    allid san.*.id[i].text();

            
    trace(allid);

            
    surl "http://" dataCenter ".api.mailchimp.com/1.2/?method=campaignClickStats&output=xml&apikey=" apiKey "&cid=" allid;

            
    nurl "http://" dataCenter ".api.mailchimp.com/1.2/?method=campaignStats&output=xml&apikey=" apiKey "&cid=" allid;

            
    m_txt.htmlText +=  "<a href='event:" surl "'>" allsub "</a>\n\n";
            
    m_txt.htmlText +=  "<font color='#ff5500'><a href='event:" nurl "'>" allsub "</a></font>\n\n";
            
    m_txt.addEventListener(TextEvent.LINKlinkEvent,false,0,true);
        }
    }

    // *** Link text from xml - to other text box
    function linkEvent(e:TextEvent):void
    {
        
    //trace(e.text);
        
    linkLoader = new URLLoader();
        
    linkTarget = new URLRequest(e.text);
        
    linkLoader.addEventListener(IOErrorEvent.IO_ERROR,  xmlError,false,0,true);
        
    linkLoader.addEventListener(Event.COMPLETElinkComplete,false,0,true);
        
    //navigateToURL(new URLRequest(e.text), "_blank");
        
    linkLoader.load(linkTarget);
    }

    // *** Link text load complete;
    function linkComplete(e:Event):void
    {
        
    linkLoader.removeEventListener(IOErrorEvent.IO_ERROR,xmlError);
        
    linkLoader.removeEventListener(Event.COMPLETElinkComplete);

        
    linkImport = new XML(e.target.data);

        
    ssum 0;
        
    usum 0;

        
    nOfSt linkImport.*.clicks.length();
        
    nOfU linkImport.*.unique.length();

        for (
    0inOfSti++)
        {
            
    adingSt linkImport.*.clicks[i].text();
            
    adingU linkImport.*.unique[i].text();

            
    ssum +=  adingSt;
            
    usum +=  adingU;

            var 
    ust usum;
            var 
    op ssum;
        }
        
    m_txt.text "Clicks = " op " and " "Unique Clicks = " ust;
    }

    // *** Load error;
    function xmlError(e:IOErrorEvent):void
    {
        
    trace(e);


  3. #3
    Member
    Join Date
    Apr 2014
    Posts
    63
    Thank you again. I want to call on the data from that secondary URL in the LinkComplete function but I don't want it to display in the m_txt when in the completeHandler function. Your suggestion on how I can do so?

  4. #4
    . fruitbeard's Avatar
    Join Date
    Oct 2011
    Posts
    1,780
    so where do you want the data to be displayed?

    load xml, get both url datas.

    display 1st data in m_txt.

    ??

  5. #5
    Member
    Join Date
    Apr 2014
    Posts
    63
    The data is displayed in the linkComplete function right now via:

    m_txt.text = "Clicks = " + op + " and " + "Unique Clicks = " + ust;

    I want to add in an addition item (opens) which is contained in the secondary URL (XML)

  6. #6
    Member
    Join Date
    Apr 2014
    Posts
    63
    yes correct, load xml and get bot url datas

    Quote Originally Posted by fruitbeard View Post
    so where do you want the data to be displayed?

    load xml, get both url datas.

    display 1st data in m_txt.

    ??

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  




Click Here to Expand Forum to Full Width

HTML5 Development Center