Skip to main content
September 15, 2009
Question

Issues with simple banner

  • September 15, 2009
  • 2 replies
  • 825 views

OK, I am trying to rework an AS1 piece for the learning process of trying to get used to AS3.  The original is not my piece - but it is something worth trying to figure out.

Basically, it pulls information from an external text file, and plays some simple animation.

At one point, I had everything working fine.

Then, in the process of trying to actually set things up for the animation using the external class, I went searching for help on animating the text pulled from the file, and was pointed (by a Developer Expert that claimed to be from Adobe) to Caurina Tweener to do this.

OK, so I did.  And at first, it worked.

Then, following the documentation, I tried adding an "onComplete" to the code for the Tweener class.  Of course, then I got an error stating:

TypeError: Error #1009: Cannot access a property or method of a null object reference.
    at externalText/completeHandler()
    at flash.events::EventDispatcher/dispatchEventFunction()
    at flash.events::EventDispatcher/dispatchEvent()
    at flash.net::URLLoader/onComplete()

So, since everything was working correctly BEFORE I added the onComplete() reference, I went back to that working version.  Except even after saving, after commenting everything out, after even DELETING everything that talks about that - I continue to get the same error even when the actual code is nowhere to be found in the external AS file.

I've restarted my computer, I have even reinstalled Flash thinking that maybe, just maybe, the issue is because my Flash CS4 was crashing, and therefore got corrupted.

I even contacted Adobe.  Not that I am impressed with their support - the person who has been "helping" me doesn't even READ the issues I am putting forward.  I used to work in tech support - this person's work is COMPLETELY unacceptable.  I've already put in a complaint about it.

I've started new files with the same code, and now I still get the SAME error with that code.  I have no clue what I am doing wrong.

So, here - I am uploading the file that is giving me the issues - maybe someone else can find what the heck I am doing wrong.

I have to assume that you (if you are helping me out) will already have the Caurina Tweener - because it won't let me add that as well.

Thanks.

Cat

PS:  It won't let me upload my text file - so here's the info:

TEXT FILE:

logo=Yoursitetitle.com
&slogan= Optional company slogan or phrase goes here...
&textline1=Professional Gear
&textline2=Top Brand Names
&textline3=Affordable Prices
&textline4=Everything You Need
&linkLocation=index.html

PS2:  It won't let me upload my AS file either, so here is THAT code:

package {
    import flash.display.*;
    import flash.events.*;
    import flash.net.URLLoader;
    import flash.net.URLLoaderDataFormat;
    import flash.net.URLRequest;
    import flash.text.TextField;
    import flash.text.TextFormat;
    import flash.text.TextFieldAutoSize;
    import caurina.transitions.*;
   
    public class externalText extends Sprite {
        //variables for controlling the external data
        private var logoText:String;
        private var logoField:TextField;
        private var logoFormat:TextFormat;
        private var sloganText:String;
        private var sloganField:TextField;
        private var sloganFormat:TextFormat;
        private var market1Text:String;
        private var market1Field:TextField;
        private var market1Format:TextFormat;
        private var market2Text:String;
        private var market2Field:TextField;
        private var market2Format:TextFormat;
        private var market3Text:String;
        private var market3Field:TextField;
        private var market3Format:TextFormat;
        private var market4Text:String;
        private var market4Field:TextField;
        private var marketFormat:TextFormat;
        private var mktBox:MovieClip;
        private var mktBox2:MovieClip;
        private var mktBox3:MovieClip;
        private var mktBox4:MovieClip;
//        private var container:Sprite = new Sprite();
       
        //variables for controlling location and sizes of the external data
        private var bgColor:uint = 0xFFFFFF;
        private var marketStartX:int;
        private var marketStartY:int = 15;
        private var marketHeight:int =  60;
        private var marketWidth:int = 100;
        private var logoStartX:int = -250;
        private var logoStartY:int = 0;
        private var sloganStartX:int = -250;
        private var sloganStartY:int = 25;
       
        public function externalText () {
            var requestText:URLRequest = new URLRequest("../images/flash.txt");
            var variables:URLLoader = new URLLoader();
            variables.dataFormat = URLLoaderDataFormat.VARIABLES;
            variables.addEventListener (Event.COMPLETE, completeHandler);
            try {
                variables.load (requestText);
            }
             catch (error:Error) {
                trace ("Unable to load URL: " + error);
            }
        }
        private function completeHandler (event:Event):void {
            var loader:URLLoader = URLLoader(event.target);
            logoText = loader.data.logo;
            sloganText = loader.data.slogan;
            market1Text = loader.data.textline1;
            market2Text = loader.data.textline2;
            market3Text = loader.data.textline3;
            market4Text = loader.data.textline4;
        //    trace(loader.data.linkLocation;

            logoField = new TextField();
            logoFormat = new TextFormat();
            logoField.text = logoText;
            logoField.autoSize = TextFieldAutoSize.LEFT;
            logoField.x = logoStartX;
            logoField.y = logoStartY;
            logoField.multiline = false;
            logoField.wordWrap = false;
            logoFormat.font = "Garamond";
            logoFormat.color = "0xFFFFFF";
            logoFormat.size = 25;
            logoFormat.underline = false;
            logoField.setTextFormat(logoFormat);
            addChild(logoField);

            sloganField = new TextField();
            sloganFormat = new TextFormat();
            sloganField.text = sloganText;
            sloganField.autoSize = TextFieldAutoSize.LEFT;
            sloganField.x = sloganStartX;
            sloganField.y = sloganStartY;
            sloganField.multiline = false;
            sloganField.wordWrap = false;
            sloganFormat.font = "Garamond";
            sloganFormat.color = "0xFFFFFF";
            sloganFormat.size = 14;
            sloganFormat.underline = false;
            sloganField.setTextFormat(sloganFormat);
            addChild(sloganField);
           
            market1Field = new TextField();
            market1Format = new TextFormat();
            market1Field.text = market1Text;
            market1Field.autoSize = TextFieldAutoSize.LEFT;
            market1Field.y = marketStartY;
            market1Field.multiline = false;
            market1Field.wordWrap = false;
            market1Format.font = "Garamond";
            market1Format.color = "0xFFFFFF";
            market1Format.size = 18;
            market1Format.underline = false;
            market1Format.bold = true;
            market1Format.letterSpacing = 1;
            market1Field.height = marketHeight;
            market1Field.width = marketWidth;
            market1Field.setTextFormat(market1Format);
            mktBox = new marketingBox();
            mktBox.x = (stage.stageWidth - market1Field.width - 10);
            mktBox.width = marketWidth;
            mktBox.height = marketHeight;
            mktBox.alpha = 0;
            addChild(mktBox);
            mktBox.addChild(market1Field);
            mktBox2 = new marketingBox();
            mktBox2.x = (stage.stageWidth - market2Field.width - 10);
            mktBox2.width = marketWidth;
            mktBox2.height = marketHeight;
            mktBox2.alpha = 0;
            addChild(mktBox2);
            mktBox3.addChild(market2Field);
            mktBox3 = new marketingBox();
            mktBox3.x = (stage.stageWidth - market3Field.width - 10);
            mktBox3.width = marketWidth;
            mktBox3.height = marketHeight;
            mktBox3.alpha = 0;
            addChild(mktBox3);
            mktBox3.addChild(market3Field);
            mktBox4 = new marketingBox();
            mktBox4.x = (stage.stageWidth - market4Field.width - 10);
            mktBox4.width = marketWidth;
            mktBox4.height = marketHeight;
            mktBox4.alpha = 0;
            addChild(mktBox4);
            mktBox4.addChild(market4Field);
           
            addEventListener(Event.ENTER_FRAME, animateMarketing);
           
            function animateMarketing (e:Event):void {
                if (logoField.x <= 5) {
                    logoField.x += 5;
                    if (logoField.x > 5) {
                        logoField.x = 5;
                    }
                }
                trace ("And we're moving")
            }
               
//                Tweener.addTween(logoField, {x: 10, time: 10});
//                Tweener.addTween(sloganField, {x: 10, time: 10});
//                Tweener.addTween(mktBox, {alpha: 1, scaleX: 1, scaleY: 1, time: 10});
//                Tweener.addTween(mktBox, {alpha: 0, time: 10});
        }
    }
}

And now it won't let me attach the FLA file.  It's a simple file - it's 750 x 50, background is blue.  And it has a "button" that allows essentially the whole banner to be a "Home" link when the piece is put on a web page.

This topic has been closed for replies.

2 replies

Participant
March 16, 2022

Same issue in mine side i read complete replies but did not fullfill my query i am waiting for community support answer.

Thank's in Advance

Participant
April 3, 2022

Thanks alot for raising the Issue. @Gabriel23614114uwmj, AlsoWaiting for the Solution from the Support Community Person.

September 16, 2009

Hi,

I analyze your code and you need some corrections.

the following code helps you.

package {
    import flash.display.*;
    import flash.events.*;
    import flash.net.URLLoader;
    import flash.net.URLLoaderDataFormat;
    import flash.net.URLRequest;
    import flash.text.TextField;
    import flash.text.TextFormat;
    import flash.text.TextFieldAutoSize;
    import caurina.transitions.*;
  
    public class externalText extends Sprite {
        //variables for controlling the external data
        private var logoText:String;
        private var logoField:TextField;
        private var logoFormat:TextFormat;
        private var sloganText:String;
        private var sloganField:TextField;
        private var sloganFormat:TextFormat;
        private var market1Text:String;
        private var market1Field:TextField;
        private var market1Format:TextFormat;
        private var market2Text:String;
        private var market2Field:TextField;
        private var market2Format:TextFormat;
        private var market3Text:String;
        private var market3Field:TextField;
        private var market3Format:TextFormat;
        private var market4Text:String;
        private var market4Field:TextField;
        private var marketFormat:TextFormat;
        private var mktBox:MovieClip;
        private var mktBox2:MovieClip;
        private var mktBox3:MovieClip;
        private var mktBox4:MovieClip;
//        private var container:Sprite = new Sprite();
      
        //variables for controlling location and sizes of the external data
        private var bgColor:uint = 0xFFFFFF;
        private var marketStartX:int;
        private var marketStartY:int = 15;
        private var marketHeight:int =  60;
        private var marketWidth:int = 100;
        private var logoStartX:int = -250;
        private var logoStartY:int = 0;
        private var sloganStartX:int = -250;
        private var sloganStartY:int = 25;
      
        public function externalText () {
            var requestText:URLRequest = new URLRequest("flash.txt");
            var variables:URLLoader = new URLLoader();
            variables.dataFormat = URLLoaderDataFormat.VARIABLES;
            variables.addEventListener (Event.COMPLETE, completeHandler);
            try {
                variables.load (requestText);
            }
             catch (error:Error) {
                trace ("Unable to load URL: " + error);
            }
        }
        private function completeHandler (event:Event):void {
           
            var loader:URLLoader = URLLoader(event.target);
            logoText = loader.data.logo;
            sloganText = loader.data.slogan;
            market1Text = loader.data.textline1;
            market2Text = loader.data.textline2;
            market3Text = loader.data.textline3;
            market4Text = loader.data.textline4;
        //    trace(loader.data.linkLocation;

            logoField = new TextField();
            logoFormat = new TextFormat();
            logoField.text = logoText;
            logoField.autoSize = TextFieldAutoSize.LEFT;
            logoField.x = logoStartX;
            logoField.y = logoStartY;
            logoField.multiline = false;
            logoField.wordWrap = false;
            logoFormat.font = "Garamond";
            logoFormat.color = "0xFFFFFF";
            logoFormat.size = 25;
            logoFormat.underline = false;
            logoField.setTextFormat(logoFormat);
            addChild(logoField);

            sloganField = new TextField();
            sloganFormat = new TextFormat();
            sloganField.text = sloganText;
            sloganField.autoSize = TextFieldAutoSize.LEFT;
            sloganField.x = sloganStartX;
            sloganField.y = sloganStartY;
            sloganField.multiline = false;
            sloganField.wordWrap = false;
            sloganFormat.font = "Garamond";
            sloganFormat.color = "0xFFFFFF";
            sloganFormat.size = 14;
            sloganFormat.underline = false;
            sloganField.setTextFormat(sloganFormat);
            addChild(sloganField);
          
            market1Field = new TextField();
            market1Format = new TextFormat();
            market1Field.text = market1Text;
            market1Field.autoSize = TextFieldAutoSize.LEFT;
            market1Field.y = marketStartY;
            market1Field.multiline = false;
            market1Field.wordWrap = false;
            market1Format.font = "Garamond";
            market1Format.color = "0xFFFFFF";
            market1Format.size = 18;
            market1Format.underline = false;
            market1Format.bold = true;
            market1Format.letterSpacing = 1;
            market1Field.height = marketHeight;
            market1Field.width = marketWidth;
            market1Field.setTextFormat(market1Format);
            mktBox = new marketingBox();
            mktBox.x = (stage.stageWidth - market1Field.width - 10);
            mktBox.width = marketWidth;
            mktBox.height = marketHeight;
            mktBox.alpha = 0;
            addChild(mktBox);
            mktBox.addChild(market1Field);
            mktBox2 = new marketingBox();
         //  mktBox2.x = (stage.stageWidth - market2Field.width - 10);
            mktBox2.width = marketWidth;
            mktBox2.height = marketHeight;
            mktBox2.alpha = 0;
            addChild(mktBox2);
            //mktBox3.addChild(market2Field);
            mktBox3 = new marketingBox();
          // mktBox3.x = (stage.stageWidth - market3Field.width - 10);
            mktBox3.width = marketWidth;
            mktBox3.height = marketHeight;
            mktBox3.alpha = 0;
            addChild(mktBox3);
           //mktBox3.addChild(market3Field);
            mktBox4 = new marketingBox();
          // mktBox4.x = (stage.stageWidth - market4Field.width - 10);
            mktBox4.width = marketWidth;
            mktBox4.height = marketHeight;
            mktBox4.alpha = 0;
            addChild(mktBox4);
           //mktBox4.addChild(market4Field);
          
            addEventListener(Event.ENTER_FRAME, animateMarketing);
          
            function animateMarketing (e:Event):void {
                if (logoField.x <= 5) {
                    logoField.x += 5;
                    if (logoField.x > 5) {
                        logoField.x = 5;
                    }
                }
                trace ("And we're moving")
            }
              
                Tweener.addTween(logoField, {x: 10, time: 10});
                Tweener.addTween(sloganField, {x: 10, time: 10});
                Tweener.addTween(mktBox, {alpha: 1, scaleX: 1, scaleY: 1, time: 10});
                Tweener.addTween(mktBox, {alpha: 0, time: 10});
        }
    }
}

Remove or comment the red colored code.

Regards

Saransoft

September 16, 2009

I have 4 pieces of text that must be animated - and unfortunately, those pieces you had me comment out are 3 of the 4 text boxes.

Yes, I am aware that I can use a loop to actually pull each of those in sequence, but I am not as comfortable with loops yet - I'm still learning the situation.

Commenting out those items that you asked me to do, did not fix the issue.  You did, however, show me a place (inadvertently) where I had screwed up in my code.

The code:             mktBox3.addChild(market2Field);

Should be             mktBox2.addChild(market2Field);

Thank you for trying - but I really need an answer that fixes the original problem

September 17, 2009

Hi

Just add this code..

market2Field = new TextField();

market2Field.text = market2Text;

market3Field = new TextField();

market3Field.text = market3Text;

market4Field = new TextField();

market4Field.text = market4Text;

Saransoft