Actionscript Error 1009

created a new textfield, applied an animation to it.
Now I am in frame 59, and I want to apply a different
animation to textfield. I get this error message.
TypeError: Error #1009: Cannot access a property or method of a null object reference.
at fl.motion::MatrixTransformer$/getSkewX()
at fl.motion::Animator/setTargetState()
at fl.motion::AnimatorBase/set target()
at fl.motion::AnimatorBase/play()
at fl.motion::AnimatorBase$/processCurrentFrame()
at fl.motion::AnimatorFactoryBase/addTargetInfo()
at fl.motion::AnimatorFactoryBase/addTarget()
at Multiply_fla::MainTimeline/frame59()
What am I missing? Can I not apply a second animation to my textfield.
Also, I tried in frame 59 to addTarget some different animations to that textfield, but they all gave this
same error message.
Thanks,
Note: I tried changing the parameters to the previous animation and reapplied it an that
works just fine. Problem solved.
Message was edited by: ASImproving

Answer indicated in the posting.

Similar Messages

  • I keep getting a ActionScript error

    I keep getting an ActionScript error #1009 Adobe Flash Player when I safari the internet to a site that is Flash based. This is new from a Adobe flash update. Now I see why Steve hated Adobe. I hit dismiss all errors and it is gone but it is a constant rude stopping of my day. Adobe is killing there brand. Please help me get rid of this problem.

    KenB42 wrote:
    Firebat1194 wrote:
    Adobe Flash Player: An ActionScript error has occured SecurityError: Error #2060: Security sandbox violation: ExternalInterface caller https://z.moatads.com/swf/MessageSenderV2.swf cannot access https://static.skypeassets.com/adserver/AdLoader.html?version=1.66.9.
    at flash.external::ExternalInterface$/_initJS()
    at flash.external::ExternalInterface$/call()
    at MessageSenderV2_fla::MainTimeline/frame1() Thank you, for the support.Not sure which versions of Windows are affected, but I had the same issue with Windows 8.1.  Go to Windows update & look in "Installed Updates" for KB3087916 - Uninstall this update - it loaded the debug version of Flash.  If you are set for automatic updates, you will want to search for new updates, select this one when it pops up again and hide it so it will not be installed again.
    I'm having the same problem and I cannot find that update..

  • Error#1009. Actionscript error in Flash Game I'm making...

    Hi,
    I'm making a Flash game and rather than putting all the AS3 on a seperate .as file, I'm throwing it on the timeline, which may or may not be a mistake since this game is getting really big, really fast and messy.
    And so I'm getting this error when I test:
    TypeError: Error #1009: Cannot access a property or method of a null object reference at GameBeta_MainTimeline_fla::MainTimeline/frame1()
    From what I've read on this error, it refers to something that isn't instantiated yet, like something that's out of order? Like I'm referring to something that doesn't exist at the point in time that I'm referring to it? So I'm looking at my AS3 and have NO idea. Here is what I have written:
    stop();
    //TITLE PAGE
    play_game.addEventListener(MouseEvent.CLICK, startgame)
    function startgame(evt:MouseEvent):void
        gotoAndStop("Name Input");
    //Name and Gender input page
    var userName:String;
    inputField.addEventListener(Event.CHANGE, onInput)
    function onInput(e:Event):void
         outputField.text = "So your name is " + inputField.text + " are you sure?";
         userName = inputField.text;
    confirm_input.addEventListener(MouseEvent.CLICK, toCreationpg)
    function toCreationpg(evt:MouseEvent):void
        gotoAndStop("Fem Creation");
        outputField.text = "So your name is "+ userName;
    //Character Creation Page
    readytostart.addEventListener(MouseEvent.CLICK, firstscene_plz)
    function firstscene_plz(evt:MouseEvent):void
        gotoAndStop("Day03");
        outputField.text = "Let's make your character, "+ userName;
    So, any ideas as to why I'm getting this error?
    Before I had each page with it's own Actionscript and buttons inside their own movieclips on the timeline. That was getting confusing so I took everything out of the movieclips to place everything on one timeline and have one layer of Actionscript hoping to simplify things and find the problem easier. No luck. It's supposed to have a Title page and a button that goes to the 2nd page where you input your name, and while you type, it shows your name before you confirm by hitting another button that finally goes to the Character Creation page. When I test, I just get that Error#1009, it'll get to the 2nd page for the name input, but the text fields act wacky and the button to proceed isn't working. I'm hoping that when I find the source of this error, the rest will be fixed as well.
    Thanks in advance for any advice offered! I'll greatly appreciate it.

    Yeah, that's what makes me even more confused. I have a seperate file where I'm testing the name input mechanics alone, just using this piece of actionscript, one input box with an instance inputField and a dynamic box outputField, a button, instance enter_name, that confirms and repeats the input on the next page. And it works.
    inputField.addEventListener(Event.CHANGE, onInput)
    var userName:String;
    function onInput(e:Event):void
         outputField.text = "You typed " + inputField.text;
         userName = inputField.text;
    enter_name.addEventListener(MouseEvent.CLICK, onClick)
    function onClick(evt:MouseEvent):void
        gotoAndStop("frame two");
        outputField.text = "So your name is "+ userName;
    So I don't get the error with that seperate file so could it be that other things are conflicting with this? Perhaps the order in which I've written my actionscript or the way I've organized my frames? In my other file, it says it's the inputField Event Listener but it'll work when I take out all the other frames and script...

  • ActionScript TypeError: Error #1009?

    Okay, so I was on this website earlier, www.peterdavid.net and tried to view a video that Vevo was hosting directly on the site's homepage, when it loaded up till about 56% an ActionScript error came up saying basicallly something like:
    TypeError: Error #1009: Cannot access a property or method of a null object reference.
        at com.vevo.mx::MenuScreenContainer/setModelInfo()
        at EmbeddedPlayer/bootstrapCompleteHandler()
        at flash.events::EventDispatcher/dispatchEventFunction()
        at flash.events::EventDispatcher/dispatchEvent()
        at org.swizframework::Swiz$/dispatchEvent()
        at com.vevo.controller::BootstrapController/checkAsyncCalls()
        at com.vevo.controller::BootstrapController/youTubeReadyHandler()
        at flash.events::EventDispatcher/dispatchEventFunction()
        at flash.events::EventDispatcher/dispatchEvent()
        at org.swizframework::Swiz$/dispatchEvent()
        at EmbeddedPlayer/playerReadyHandler()
        at EmbeddedPlayer/__corePlayer_playerReady()
        at flash.events::EventDispatcher/dispatchEventFunction()
        at flash.events::EventDispatcher/dispatchEvent()
        at mx.core::UIComponent/dispatchEvent()
        at com.vevo.view.controls::CorePlayer/playerReadyHandler()
        at flash.events::EventDispatcher/dispatchEventFunction()
        at flash.events::EventDispatcher/dispatchEvent()
        at mx.core::UIComponent/dispatchEvent()
        at com.vevo.view.controls::AS3YouTubePlayer/onPlayerReady()
        at flash.events::EventDispatcher/dispatchEventFunction()
        at flash.events::EventDispatcher/dispatchEvent()
        at com.google.youtube.application::SwfProxy/onExternalEvent()
        at flash.events::EventDispatcher/dispatchEventFunction()
        at flash.events::EventDispatcher/dispatchEvent()
        at com.google.youtube.model::YouTubeEnvironment/broadcastExternal()
        at com.google.youtube.application::VideoApplication/build()
        at com.google.youtube.application::Application/onInited()
        at com.google.youtube.application::VideoApplication/onInited()
        at com.google.youtube.application::Application/initData()
        at com.google.youtube.application::VideoApplication/initData()
        at com.google.youtube.application::Application/init()
        at com.google.youtube.application::VideoApplication/init()
        at com.google.youtube.application::Application/onInit()
    Now my question is really, first of all, is this a problem with the website or with my computer, second, how do I fix this, and yeah I don't know anything about ActionScript, I was not trying to write one at all I simply came across a website and this happened during the video playing. Any thoughts?
    EDIT: not sure if it would help, but the options I had were to Dismiss All and Continue.
    Thanks in advance.

    Usually this type of error is caused by the website, rather than your Flash Player installation.  If you tell us what video on the website is causing it, someone here can test it.
    What OS and browser are you using?
    Also, is 'third-party content' checked on the Flash Player Settings Manager at http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager.html ?

  • Actionscript is on main timeline: Error #1009 comes up.

    TypeError: Error #1009: Cannot access a property or method of a null object reference.
    at neonSign_fla::MainTimeline/flickerIt()
    The Code on Frame 1:
    import flash.filters.*;
    var audio:Sound = new Sound();
    var req:URLRequest = new URLRequest("Buzz.mp3");
    audio.load(req);
    audio.play();
    //var channel:SoundChannel= new SoundChannel();
    addEventListener(Event.ENTER_FRAME, flickerIt);
    //addEventListener(Event.EXIT_FRAME, killIt);
    function flickerIt(evt:Event):void{
    var filters:Array = sign.filters;
    var glow:GlowFilter = filters[2];
    glow.strength = Math.random()*.5 + .35;
    sign.filters = filters ;
    So Why am I receiving the error when the actionscript is on the main timeline.

    The 1009 error indicates that one of the objects being targeted by your code is out of scope.  This could mean that the object....
    - is not in the display list
    - doesn't have an instance name (or the instance name is mispelled)
    - does not exist in the frame where that code is trying to talk to it
    - is animated into place but is not assigned instance names in every keyframe for it
    - is one of two or more consecutive keyframes of the same objects with no name assigned in the preceding frame(s).
    If you go into your Publish Settings Flash section and select the option to Permit debugging, your error message should have a line number following the frame number which will help you isolate which object is involved.

  • Error #1009 in my Platform Game! Please Help!!!

    In my basic platform game I have a "hero" that can walk and jump on the "ground." There is also a door to the next scene, which is the next level.The first scene works fine, but "TypeError: Error #1006: value is not a function. at Charles3_fla::MainTimeline/frame1()" pops up once in the output. It works however, and I'm not worried about it. The second I go throught the door though, Scene 2 opens, but then starts flashing as "TypeError: Error #1009: Cannot access a property or method of a null object reference. at Charles3_fla::MainTimeline/onenter()" pops up A LOT in the output. I don't know how to fix it, and would like help. P.S. I am using Adobe CS5 with actionscript 3
    Here is the code for Scene 1:
    hero.gotoAndStop('still');
    var Key:KeyObject = new KeyObject(stage);
    var vy:Number=0;
    var gravity:Number=2;
    var jumped:Boolean = false;
    stage.addEventListener(Event.ENTER_FRAME,onenter)(true);
    function onenter(e:Event):void{
    vy+=gravity;
    if(! ground.hitTestPoint(hero.x,hero.y,true)) {
      hero.y+vy;
    if(ground.hitTestPoint(hero.x+(hero.width/2), hero.y-(hero.height/2), true)) {
      hero.x-=13;
    if(ground.hitTestPoint(hero.x-(hero.width/2), hero.y-(hero.height/2), true)) {
      hero.x+=13;
    if (vy>10) {
      vy=10;
    for (var i:int = 0; i<10; i++) {
      if (ground.hitTestPoint(hero.x,hero.y,true)) {
       hero.y--;
       vy=6;
       jumped=true;
    if(door.hitTestObject(hero)){
        gotoAndPlay(1,"Scene 2");
    if(hero.y>300){
      vy=6;
      jumped=true;
      if(Key.isDown(Key.UP) && jumped){
       vy=-13;
       jumped=false;
       hero.y+=vy;
    if(Key.isDown(Key.RIGHT)){
      hero.x+=10;
      hero.scaleX=1;
      hero.gotoAndStop('walking');
      }else if(Key.isDown(Key.LEFT)){
      hero.x-=10;
      hero.scaleX=-1;
      hero.gotoAndStop('walking');
      }else{
       hero.gotoAndStop('still');
    And for Scene 2...
    hero.gotoAndStop('still');
    var Key1:KeyObject =KeyObject(stage);
    var vy1:Number=0;
    var gravity1:Number=2;
    var jumped1:Boolean = false;
    stage.addEventListener(Event.ENTER_FRAME,onenter1)(true);
    function onenter1(e:Event):void{
    vy1+=gravity;
    if(! ground.hitTestPoint(hero.x,hero.y,true)) {
      hero.y+vy;
    if(ground.hitTestPoint(hero.x+(hero.width/2), hero.y-(hero.height/2), true)) {
      hero.x-=13;
    if(ground.hitTestPoint(hero.x-(hero.width/2), hero.y-(hero.height/2), true)) {
      hero.x+=13;
    if (vy1>10) {
      vy1=10;
    for (var i:int = 0; i<10; i++) {
      if (ground.hitTestPoint(hero.x,hero.y,true)) {
       hero.y--;
       vy1=6;
       jumped1=true;
    if(door.hitTestObject(hero)){
        gotoAndPlay(1,"Scene 2");
    if(hero.y>300){
      vy1=6;
      jumped1=true;
      if(Key.isDown(Key.UP) && jumped1){
       vy1=-13;
       jumped1=false;
       hero.y+=vy;
    if(Key.isDown(Key.RIGHT)){
      hero.x+=10;
      hero.scaleX=1;
      hero.gotoAndStop('walking');
      }else if(Key.isDown(Key.LEFT)){
      hero.x-=10;
      hero.scaleX=-1;
      hero.gotoAndStop('walking');
      }else{
       hero.gotoAndStop('still');
    Please reply as soon as possible, and thanks for your time
    swiatekalex555

    Ok sorry about my misunderstanding. Here's the code with the errors Highlighted. I also downloaded a "KeyObject.as" package, and the contents of that are on the bottom.
    hero.gotoAndStop('still');
    var Key:KeyObject = new KeyObject(stage);
    var vy:Number=0;
    var gravity:Number=2;
    var jumped:Boolean = false;
    stage.addEventListener(Event.ENTER_FRAME,onenter)(true);
    function onenter(e:Event):void{
    vy+=gravity;
    if(! ground.hitTestPoint(hero.x,hero.y,true)) {
      hero.y+vy;
    if(ground.hitTestPoint(hero.x+(hero.width/2), hero.y-(hero.height/2), true)) {
      hero.x-=13;
    if(ground.hitTestPoint(hero.x-(hero.width/2), hero.y-(hero.height/2), true)) {
      hero.x+=13;
    if (vy>10) {
      vy=10;
    for (var i:int = 0; i<10; i++) {
      if (ground.hitTestPoint(hero.x,hero.y,true)) {
       hero.y--;
       vy=6;
       jumped=true;
    if(door.hitTestObject(hero)){
        gotoAndPlay(1,"Scene 2");
    if(hero.y>300){
      vy=6;
      jumped=true;
      if(Key.isDown(Key.UP) && jumped){
       vy=-13;
       jumped=false;
       hero.y+=vy;
    if(Key.isDown(Key.RIGHT)){
      hero.x+=10;
      hero.scaleX=1;
      hero.gotoAndStop('walking');
      }else if(Key.isDown(Key.LEFT)){
      hero.x-=10;
      hero.scaleX=-1;
      hero.gotoAndStop('walking');
      }else{
       hero.gotoAndStop('still');
    And for Scene 2...
    hero.gotoAndStop('still');
    var Key1:KeyObject =KeyObject(stage);
    var vy1:Number=0;
    var gravity1:Number=2;
    var jumped1:Boolean = false;
    stage.addEventListener(Event.ENTER_FRAME,onenter1)(true);
    function onenter1(e:Event):void{
    vy1+=gravity;
    if(! ground.hitTestPoint(hero.x,hero.y,true)) {
      hero.y+vy;
    if(ground.hitTestPoint(hero.x+(hero.width/2), hero.y-(hero.height/2), true)) {
      hero.x-=13;
    if(ground.hitTestPoint(hero.x-(hero.width/2), hero.y-(hero.height/2), true)) {
      hero.x+=13;
    if (vy1>10) {
      vy1=10;
    for (var i:int = 0; i<10; i++) {
      if (ground.hitTestPoint(hero.x,hero.y,true)) {
       hero.y--;
       vy1=6;
       jumped1=true;
    if(door.hitTestObject(hero)){
        gotoAndPlay(1,"Scene 2");
    if(hero.y>300){
      vy1=6;
      jumped1=true;
      if(Key.isDown(Key.UP) && jumped1){
       vy1=-13;
       jumped1=false;
       hero.y+=vy;
    if(Key.isDown(Key.RIGHT)){
      hero.x+=10;
      hero.scaleX=1;
      hero.gotoAndStop('walking');
      }else if(Key.isDown(Key.LEFT)){
      hero.x-=10;
      hero.scaleX=-1;
      hero.gotoAndStop('walking');
      }else{
       hero.gotoAndStop('still');
    the KeyObject.as
    package {
    import flash.display.Stage;
    import flash.events.KeyboardEvent;
    import flash.ui.Keyboard;
    import flash.utils.Proxy;
    import flash.utils.flash_proxy;
      * The KeyObject class recreates functionality of
      * Key.isDown of ActionScript 1 and 2
      * Usage:
      * var key:KeyObject = new KeyObject(stage);
      * if (key.isDown(key.LEFT)) { ... }
    dynamic public class KeyObject extends Proxy {
      private static var stage:Stage;
      private static var keysDown:Object;
      public function KeyObject(stage:Stage) {
       construct(stage);
      public function construct(stage:Stage):void {
       KeyObject.stage = stage;
       keysDown = new Object();
       stage.addEventListener(KeyboardEvent.KEY_DOWN, keyPressed);
       stage.addEventListener(KeyboardEvent.KEY_UP, keyReleased);
      flash_proxy override function getProperty(name:*):* {
       return (name in Keyboard) ? Keyboard[name] : -1;
      public function isDown(keyCode:uint):Boolean {
       return Boolean(keyCode in keysDown);
      public function deconstruct():void {
       stage.removeEventListener(KeyboardEvent.KEY_DOWN, keyPressed);
       stage.removeEventListener(KeyboardEvent.KEY_UP, keyReleased);
       keysDown = new Object();
       KeyObject.stage = null;
      private function keyPressed(evt:KeyboardEvent):void {
       keysDown[evt.keyCode] = true;
      private function keyReleased(evt:KeyboardEvent):void {
       delete keysDown[evt.keyCode];
    Help if you can,
    swiatekalex555

  • Another TypeError: Error #1009 Problem

    Hey all,   I've searched the 'net and searched these forums but can't seem to figure out what I'm doing wrong.  I'm creating a flash based game for school that so far has ten frames on the timeline.  I have buttons on frame one, frame 5, and frame 10. I have actionscript code to control those buttons on frame 1, frame 5, and frame 10 respectively.  The code is worded identically on each frame with the exception that I've changed the button names and the function names that are called when the mouse button is pressed.   The code works fine on frame 1 and on frame 5, but when I click the button on frame 5 that sends me to frame 10, I get this error immediately:
    TypeError: Error #1009: Cannot access a property or method of a null object reference.
        at keys2BibleTest_fla::MainTimeline/frame10()
        at flash.display::MovieClip/gotoAndStop()
        at keys2BibleTest_fla::MainTimeline/stormBtnHandler1()
    I have verified that each instance of the buttons do indeed have the name of the button being listened for in the event handlers. I can change the type from button to movieclip and it works fine.  I can also remove frames 1 through 9 and the code works.
    Here's the code:
    Frame 1:
    stop();
    enterBtn.addEventListener(MouseEvent.MOUSE_DOWN, enterBtnHandler1);
    function enterBtnHandler1(event:MouseEvent):void {
        gotoAndStop(5, "Scene 1");
    Frame 5:
    import flash.events.MouseEvent;
    stormBtn.addEventListener(MouseEvent.MOUSE_DOWN, stormBtnHandler1);
    function stormBtnHandler1(event:MouseEvent):void {
        gotoAndStop(10, "Scene 1");
    chickenOutBtn.addEventListener(MouseEvent.MOUSE_DOWN, chickenOutBtnHandler1);
    function chickenOutBtnHandler1(event:MouseEvent):void {
        gotoAndStop(1, "Scene 1");
    Frame 10:
    import flash.events.MouseEvent;
    creationBtn.addEventListener(MouseEvent.MOUSE_DOWN, creation);
    function creation(event:MouseEvent):void {
        gotoAndStop(3, "Scene 1");
    lifeBtn.addEventListener(MouseEvent.MOUSE_DOWN, lifeOfChrist);
    function lifeOfChrist(event:MouseEvent):void {
        navigateToURL(new URLRequest("http://www.ceoutreach.org"));
    I can't for the life of me figure out what's wrong.  Can anyone help?
    Thank you,
    Mike

    Ned,
    thank you for your reply. Unfortunately, my buttons are on separate layers and separated by blank keyframes to boot.  When I posted originally, the buttons were all on the same layer BUT separated by blank keyframes. After doing some research on the web, I moved the buttons to their own separate layers (one button per layer) and kept the blank keyframes as well.
    Currently, my only filled keyframes are one, five, and ten. All other keyframes are blank except for my labels and actionscript code. I'm using separate layers for labels and actions, too. I attempted to attach the file with my original post but received the message that .fla files are not allowed.  I don't know about your window, but mine says Max size 5.0 MB (my file is 2), All files types allowed except.... .fla is not one of those in the exception list so I expected it to go.
    It's got something to do with the two buttons on frame 10.... I just went into the actionscript and bypassed frame 5, going directly to frame 10 when the Enter button is depressed, and got the same error message.   There's something in the code I'm just not seeing.... when I comment out the code for the buttons, no error message.  Put the code back in, error message comes back.  Delete the buttons and the code and insert new ones, the error message comes back.
    It's got me totally stumped.
    Thank you for trying,
    Mike
    Edit: I forgot to mention, frame ten is the only place on the timeline where instances of these particular buttons are being used. The other frames are populated with different buttons.  Also, when I change the type to movieclip, everything works.  Weird, huh?

  • Error #1009: Cannot access a property or method

    Here's the context of the problem, in which I will try to include as much information as possible while keeping the explanation brief.
    I am trying to make a portfolio website (architectural design + concept art).  Flash / programing are not my focus and this is my first go at learning the software.  Due to the nature of the content and my (lack) of ability in AS3, I want the the coding to be really simple and still let the site look good.  The way the site is currently structured:
    1) Basic menu buttons that navigate to sections of the site (brings up a new page).
    2) Example, clicking on <Graphics> takes you to a new page and a sub-menu animates in (simple motion tween for the buttons to cascade down).  This animation is a movie clip placed on the main timeline.
    3) On the screen is also a slideshow for all the images within <Graphics>.  Instead of multiple small slideshows, I combined them all into one, so as to avoid complications with add / remove from stage.  There are prev / next buttons that keep images within their sub section (ie 1->2->3->1).  The sub-menu buttons are suppose to link to the start of each sub section, much like chapters on a DVD.  (The slideshow is a movieclip sub-nested in the menu movieclip).
    Main menu buttons work.
    Sub-menu animation works.
    Slideshow works.
    Can't get the sub-menu buttons to access the slideshow chapters.
    I have created and solved about half a dozen errors, and each time I fix something, it just causes another point to break.  I've gone around in circles for days, and not sure which was is up anymore.  So, while the slideshow works independently of the rest of the content, and I think I have the parent referencing correct, the problem I am currently facing is thus:
    TypeError: Error #1009: Cannot access a property or method of a null object reference.
        at 03graphics_fla::MainTimeline/frame1()
    I've browsed some other threads, and I think I know what the problem is.  Since the sub-menu is animated, the buttons do not appear on frame 1 of the nested timeline, while the actionscript is on frame 1 of the main timeline - thus the code doesn't exist yet when I click the button.
    Is this indeed the problem?  If so, how do I go about fixing it?
    Additionally, does the structure makes sense on how my site is organized?  Is there an easier / cleaner way to code it?
    (This thing is completely ghetto-rigged, I just need it to function - it's like my own little Millenium Falcon...)
    Cheers,
    Andy

    Try following this posting, which is just a posting or two away from your own in the forum...
    http://forums.adobe.com/thread/748542?tstart=0

  • TypeError: Error #1009: Cannot access a property or method of a null object reference.

    Hi all,
    I am new to ActionScript and Flash, and I am getting this error: TypeError: Error #1009: Cannot access a property or method of a null object reference.
    at jessicaclucas_fla::MainTimeline/stopResumescroll()
    I have several different clips in one movie that have scrolling content. When I click a button to move to a different clip that doesn’t have a certain scroll, it gives me this error. I cannot figure out how to fix this. You can see the site I am working on: http://www.jessicaclucas.com. I would really appreciate some help! Thank you in advance. Here is the code:
    //Import TweenMax and the plugin for the blur filter
    import gs.TweenMax;
    import gs.plugins.BlurFilterPlugin;
    //Save the content’s and mask’s height.
    //Assign your own content height here!!
    var RESUMECONTENT_HEIGHT:Number = 1500;
    var RESUME_HEIGHT:Number = 450;
    //We want to know what was the previous y coordinate of the content (for the animation)
    var oldResumeY:Number = myResumecontent.y;
    //Position the content on the top left corner of the mask
    myResumecontent.x = myResume.x;
    myResumecontent.y = myResume.y;
    //Set the mask to our content
    myResumecontent.mask = myResume;
    //Create a rectangle that will act as the Resumebounds to the scrollMC.
    //This way the scrollMC can only be dragged along the line.
    var Resumebounds:Rectangle = new Rectangle(resumescrollMC.x,resumescrollMC.y,0,450);
    //We want to know when the user is Resumescrolling
    var Resumescrolling:Boolean = false;
    //Listen when the user is holding the mouse down on the scrollMC
    resumescrollMC.addEventListener(MouseEvent.MOUSE_DOWN, startResumescroll);
    //Listen when the user releases the mouse button
    stage.addEventListener(MouseEvent.MOUSE_UP, stopResumescroll);
    //This function is called when the user is dragging the scrollMC
    function startResumescroll(e:Event):void {
    //Set Resumescrolling to true
    Resumescrolling = true;
    //Start dragging the scrollMC
    resumescrollMC.startDrag(false,Resumebounds);
    //This function is called when the user stops dragging the scrollMC
    function stopResumescroll(e:Event):void {
    //Set Resumescrolling to false
    Resumescrolling = false;
    //Stop the drag
    resumescrollMC.stopDrag();
    //Add ENTER_FRAME to animate the scroll
    addEventListener(Event.ENTER_FRAME, enterResumeHandler);
    //This function is called in each frame
    function enterResumeHandler(e:Event):void {
    //Check if we are Resumescrolling
    if (Resumescrolling == true) {
    //Calculate the distance how far the scrollMC is from the top
    var distance:Number = Math.round(resumescrollMC.y - Resumebounds.y);
    //Calculate the percentage of the distance from the line height.
    //So when the scrollMC is on top, percentage is 0 and when its
    //at the bottom the percentage is 1.
    var percentage:Number = distance / RESUME_HEIGHT;
    //Save the old y coordinate
    oldResumeY = myResumecontent.y;
    //Calculate a new y target coordinate for the content.
    //We subtract the mask’s height from the contentHeight.
    //Otherwise the content would move too far up when we scroll down.
    //Remove the subraction to see for yourself!
    var targetY:Number = -((RESUMECONTENT_HEIGHT - RESUME_HEIGHT) * percentage) + myResume.y;
    //We only want to animate the scroll if the old y is different from the new y.
    //In our movie we animate the scroll if the difference is bigger than 5 pixels.
    if (Math.abs(oldResumeY - targetY) > 5) {
    //Tween the content to the new location.
    //Call the function ResumetweenFinished() when the tween is complete.
    TweenMax.to(myResumecontent, 0.3, {y: targetY, blurFilter:{blurX:22, blurY:22}, onComplete: ResumetweenFinished});
    //This function is called when the tween is finished
    function ResumetweenFinished():void {
    //Tween the content back to “normal” (= remove blur)
    TweenMax.to(myResumecontent, 0.3, {blurFilter:{blurX:0, blurY:0}});

    Hi again,
    Thank you for helping. I really appreciate it! Would it be easier to say, if resumescrollMC exists, then execute these functions? I was not able to figure out the null statement from your post. Here is what I am trying (though I am not sure it is possible). I declared the var resumescrollMC, and then I tried to put pretty much the entire code into an if (resumescrollMC == true) since this code only needs to be completed when resumescrollMC is on the stage. It is not working the way I have tried, but I am assuming I am setting up the code incorrectly. Or, an if statement is not supposed to be issued to an object:
    //Import TweenMax and the plugin for the blur filter
    import gs.TweenMax2;
    import gs.plugins.BlurFilterPlugin2;
    //Save the content's and mask's height.
    //Assign your own content height here!!
    var RESUMECONTENT_HEIGHT:Number = 1500;
    var RESUME_HEIGHT:Number = 450;
    var resumescrollMC:MovieClip;
    if (resumescrollMC == true) {
    //We want to know what was the previous y coordinate of the content (for the animation)
    var oldResumeY:Number = myResumecontent.y;
    //Position the content on the top left corner of the mask
    myResumecontent.x = myResume.x;
    myResumecontent.y = myResume.y;
    //Set the mask to our content
    myResumecontent.mask = myResume;
    //Create a rectangle that will act as the Resumebounds to the scrollMC.
    //This way the scrollMC can only be dragged along the line.
    var Resumebounds:Rectangle = new Rectangle(resumescrollMC.x,resumescrollMC.y,0,450);
    //We want to know when the user is Resumescrolling
    var Resumescrolling:Boolean = false;
    //Listen when the user is holding the mouse down on the scrollMC
    resumescrollMC.addEventListener(MouseEvent.MOUSE_DOWN, startResumescroll);
    //Listen when the user releases the mouse button
    stage.addEventListener(MouseEvent.MOUSE_UP, stopResumescroll);
    //This function is called when the user is dragging the scrollMC
    function startResumescroll(e:Event):void {
    //Set Resumescrolling to true
    Resumescrolling = true;
    //Start dragging the scrollMC
    resumescrollMC.startDrag(false,Resumebounds);
    //This function is called when the user stops dragging the scrollMC
    function stopResumescroll(e:Event):void {
    //Set Resumescrolling to false
    Resumescrolling = false;
    //Stop the drag
    resumescrollMC.stopDrag();
    //Add ENTER_FRAME to animate the scroll
    addEventListener(Event.ENTER_FRAME, enterResumeHandler);
    //This function is called in each frame
    function enterResumeHandler(e:Event):void {
    //Check if we are Resumescrolling
    if (Resumescrolling == true) {
    //Calculate the distance how far the scrollMC is from the top
    var distance:Number = Math.round(resumescrollMC.y - Resumebounds.y);
    //Calculate the percentage of the distance from the line height.
    //So when the scrollMC is on top, percentage is 0 and when its
    //at the bottom the percentage is 1.
    var percentage:Number = distance / RESUME_HEIGHT;
    //Save the old y coordinate
    oldResumeY = myResumecontent.y;
    //Calculate a new y target coordinate for the content.
    //We subtract the mask's height from the contentHeight.
    //Otherwise the content would move too far up when we scroll down.
    //Remove the subraction to see for yourself!
    var targetY:Number = -((RESUMECONTENT_HEIGHT - RESUME_HEIGHT) * percentage) + myResume.y;
    //We only want to animate the scroll if the old y is different from the new y.
    //In our movie we animate the scroll if the difference is bigger than 5 pixels.
    if (Math.abs(oldResumeY - targetY) > 5) {
    //Tween the content to the new location.
    //Call the function ResumetweenFinished() when the tween is complete.
    TweenMax.to(myResumecontent, 0.3, {y: targetY, blurFilter:{blurX:22, blurY:22}, onComplete: ResumetweenFinished});
    //This function is called when the tween is finished
    function ResumetweenFinished():void {
    //Tween the content back to "normal" (= remove blur)
    TweenMax.to(myResumecontent, 0.3, {blurFilter:{blurX:0, blurY:0}});

  • Could somebody explain why I am getting this Error #1009 message?

    Hi. I am following a tutorial on lynda.com in hopes of learning how to use actionscript 3.0 and my copy of flash CS4 to create games. I wrote my code exactly like it showed in the tutorial, but for some reason I will occasionally receive an error that says
    "TypeError: Error #1009: Cannot access a property or method of a null object reference.
    at Monster/die()
    at flash.events::EventDispatcher/dispatchEventFunction()
    at flash.events::EventDispatcher/dispatchEvent()
    at fl.motion::AnimatorBase/end()
    at fl.motion::AnimatorBase/handleLastFrame()
    at fl.motion::AnimatorBase/nextFrame()
    at fl.motion::AnimatorBase/handleEnterFrame()"
    It doesn't happen all the time but it will every once in a while. There doesn't really seem to be anything specifically that triggers it either. I also happened to notice that not all of the enemies respond to being clicked on. I don't know if these two things are related or not. I don't know if the error is caused by the code for the monster library item or the code for the main timeline. Thank you in advance for looking at my code.
    This is my code for the monster library item:
    import fl.motion.Animator;
    import fl.motion.MotionEvent;
    var this_xml:XML = <Motion duration="30" xmlns="fl.motion.*" xmlns:geom="flash.geom.*" xmlns:filters="flash.filters.*">
    <source>
      <Source frameRate="10" x="275" y="200" scaleX="1" scaleY="1" rotation="0" elementType="movie clip" symbolName="monster">
       <dimensions>
        <geom:Rectangle left="-32.5" top="-32.95" width="65.05" height="65.95"/>
       </dimensions>
       <transformationPoint>
        <geom:Point x="0.49961568024596464" y="0.49962092494313876"/>
       </transformationPoint>
      </Source>
    </source>
    <Keyframe index="0" tweenSnap="true" tweenSync="true">
      <tweens>
       <SimpleEase ease="0"/>
      </tweens>
    </Keyframe>
    <Keyframe index="29" tweenSnap="true" tweenSync="true" scaleX="2.782" scaleY="2.697">
      <tweens>
       <SimpleEase ease="0"/>
      </tweens>
    </Keyframe>
    </Motion>;
    var this_animator:Animator = new Animator(this_xml, this);
    this_animator.play();
    this_animator.addEventListener(MotionEvent.MOTION_END, hurtPlayer);
    function hurtPlayer(MotionEvent):void
    var main:MovieClip = MovieClip(this.parent.parent);
    main.decreaseEnergy();
    this.parent.removeChild(this);
    this.addEventListener(MouseEvent.CLICK, killMonster);
    function killMonster(event:MouseEvent):void
    this_xml = <Motion duration="5" xmlns="fl.motion.*" xmlns:geom="flash.geom.*" xmlns:filters="flash.filters.*">
    <source>
      <Source frameRate="10" x="275" y="200" scaleX="1" scaleY="1" rotation="0" elementType="movie clip" symbolName="monster" class="Monster">
       <dimensions>
        <geom:Rectangle left="-32.5" top="-32.95" width="65.05" height="65.95"/>
       </dimensions>
       <transformationPoint>
        <geom:Point x="0.49961568024596464" y="0.49962092494313876"/>
       </transformationPoint>
      </Source>
    </source>
    <Keyframe index="0" rotateDirection="cw" rotateTimes="1" tweenSnap="true" tweenSync="true">
      <tweens>
       <SimpleEase ease="0"/>
      </tweens>
    </Keyframe>
    <Keyframe index="4" rotateDirection="cw" rotateTimes="1" tweenSnap="true" tweenSync="true" scaleX="0.416" scaleY="0.378">
      <color>
       <Color alphaMultiplier="0"/>
      </color>
      <tweens>
       <SimpleEase ease="0"/>
      </tweens>
    </Keyframe>
    </Motion>;
    this_animator = new Animator(this_xml, this);
    this_animator.play();
    this_animator.addEventListener(MotionEvent.MOTION_END, die);
    function die(event:MotionEvent):void
    var main:MovieClip = MovieClip(this.parent.parent);
    main.increaseScore();
    this_animator.removeEventListener(MotionEvent.MOTION_END, hurtPlayer);
    this.parent.removeChild(this);
    This is my code for the main timeline:
    var monstersInGame:uint;
    var monsterMaker:Timer;
    var container_mc:MovieClip;
    var cursor:MovieClip;
    var score:int;
    var energy:int;
    function initializeGame():void
    monstersInGame = 10;
    monsterMaker = new Timer(1000, monstersInGame);
    container_mc = new MovieClip;
    addChild(container_mc);
    monsterMaker.addEventListener(TimerEvent.TIMER, createMonsters);
    monsterMaker.start();
    cursor = new Cursor();
    addChild(cursor);
    cursor.enabled = false;
    Mouse.hide();
    stage.addEventListener(MouseEvent.MOUSE_MOVE, dragCursor);
    score = 0;
    energy = energy_mc.totalFrames;
    energy_mc.gotoAndStop(energy);
    function dragCursor(event:MouseEvent):void
    cursor.x = this.mouseX;
    cursor.y = this.mouseY;
    function createMonsters(event:TimerEvent):void
    var monster:MovieClip;
    monster = new Monster();
    monster.x = Math.random() * stage.stageWidth;
    monster.y = Math.random() * stage.stageHeight;
    container_mc.addChild(monster);
    function increaseScore():void
    score ++;
    if(score >= monstersInGame)
      monsterMaker.stop();
    function decreaseEnergy():void
    energy --;
    if(energy <= 0)
      monsterMaker.stop();
    else
      energy_mc.gotoAndStop(energy);
    initializeGame();

    Ok. Apparently, I didn't test it enought times to get the error. I went back and tested it again to get the error. When I did this, the
    trace(this); revealed [object Monster]
    and
    trace(this.parent); revealed [object MovieClip].
    The only one that was different was the one that gave the error. For that one the
    trace(this); revealed [object Monster]
    and
    trace(this.parent); revealed null.
    Then it gave all of the error information.

  • Preloader :Error #1009: Cannot access a property or method of a null object reference.

    Hi,
    I'm having a lot of trouble getting a preloader to work on my Flash website. I'm new to actionscript, the site works fine but when I place the preloader in frame 1, I get.
    Error#1009: Cannot access a property or method of a null object reference.
    Then it lists three areas. The buttons on the site don't work anymore.
    I've followed the Lynda com tutorials so don't know what is causing this error.
    Included is the word.doc with the error code, preloader code, the main flash frame 2 code and the debug information.
    Any help would be great.
    Thanks!

    You need to make sure 'cards' is named properly and is present when that line of code executes.  If it is somewhere down a timeline, it is not present.
    As far as your preloader code goes, what is infoLoader.  I have to assume it's some form of component since you don't have any code to instantiate it.

  • TypeError: Error #1009: Cannot access a property or method of a null object reference. at mx.controls::AdvancedDataGrid/findHeaderRenderer()

    Can anyone throw any light on this obscure Flex error?...
    TypeError: Error #1009: Cannot access a property or method of a null object reference.
    at mx.controls::AdvancedDataGrid/findHeaderRenderer()[...path...\projects\datavisualisation\ src\mx\controls\AdvancedDataGrid.as:1350]
    at mx.controls::AdvancedDataGrid/mouseEventToItemRenderer()[...path...\projects\datavisualis ation\src\mx\controls\AdvancedDataGrid.as:1315]
    at mx.controls.listClasses::AdvancedListBase/mouseMoveHandler()[...path...\projects\datavisu alisation\src\mx\controls\listClasses\AdvancedListBase.as:8091]
    I found a related bug reported on Jira: https://bugs.adobe.com/jira/browse/FLEXDMV-1631
    But in our case, we have no zoom effect.  It may be timing related, as there is a lot of computation going on when this page, and the ADG is first initialised.
    Please?... Any suggestions or workarounds?  We don't want this falling over in the hands of our customers.
    <rant> And people wonder why I hate Flex!?  These obscure instabilities never happen when I develop Pure ActionScript.  The Flash platform is wonderfully stable.  But as soon as you bring Flex into play, things take longer to develop, it's a struggle to extend or change the behaviour of the bloated components, and everything falls apart as these bugs begin to surface.</rant>

    facing the same problem... sdk 4.1. no solution for about 2 years ????

  • Stupid TypeError: Error #1009:

    Ok, guys I have posted this same question to a few forums but no luck. So heres my problem that im getting when I complile my swf. I get this stupid, compiling error message, I know what its reffering to but I tried tackleing the line which its referring to but no luck.
    TypeError: Error #1009: Cannot access a property or method of a null object reference.
    at net.schemagroup.ui::Interface/revealDropDown()[/Users/abel/Desktop/mySite/fla/net/schemag roup/ui/Interface.as:174]
    at net.schemagroup::LatestWorks/initRevealDropDown()[/Users/abel/Desktop/mySite/fla/net/sche magroup/LatestWorks.as:407]
    at Function/http://adobe.com/AS3/2006/builtin::apply()
    at SetIntervalTimer/onTimer()
    at flash.utils::Timer/_timerDispatch()
    at flash.utils::Timer/tick()
    So basically i'm just calling a instance method from my LatestWorks.as class. Which this instance method is defined in Interface.as class also, my Interface.as class is initialized through my Shell.as class.
    Heres my hiarchy of my class structure.
    here are my classes in order Shell.as,Interface.as, and LatestWorks.as
    Here is Shell.as class
    Code: Select all
    package net.schemagroup
       import gs.*;
       import gs.easing.*;
       import flash.display.*;
       import flash.media.Sound;
       import flash.media.SoundChannel;
       import flash.media.SoundLoaderContext;
       import flash.media.SoundTransform;
       import flash.events.*;
       import flash.net.*;
       import net.schemagroup.ui.Interface;
       import net.schemagroup.LatestWorks;
       public class Shell extends MovieClip
          public var duration:Number;
          public var swfWidth:uint;
          public var swfHeight:uint;
          private var mySound:Sound;
          private var urlSound:String;
          private var urlRequest:URLRequest;
          private var soundBuffTime:Number;
          private var sndChannel:SoundChannel;
          private var testingSound:Boolean;
          private var transform0:SoundTransform;
          private var directoryPath:String;
          private var latestPage:MovieClip;
          var myWork:LatestWorks;
          public function Shell()
             soundBuffTime = 1000;
             var myInterface:Interface = new Interface();
             myInterface.revealInterface(interface_mc);
             latestPage = pages_mc.page0_mc;
             testingSound = true;
             duration = 0.75;
             if (testingSound)
                directoryPath = "../ambient/";
                urlSound = directoryPath + "06_Dabz_Beat.mp3";
             else
                directoryPath = "ambient/";
                urlSound = directoryPath + "06_Dabz_Beat.mp3";
             mySound = new Sound();
             urlRequest = new URLRequest(urlSound);
             var context:SoundLoaderContext = new SoundLoaderContext(soundBuffTime, true);
             mySound.load(urlRequest, context);
             sndChannel = mySound.play();
             transform0 =  sndChannel.soundTransform;
             addEventListener(Event.ENTER_FRAME, onPosition);
             myWork = new LatestWorks();
             swfWidth = stage.stageWidth;
             swfHeight = stage.stageHeight;
             setDefaultStageSettings();
             stage.scaleMode = StageScaleMode.NO_SCALE;
             stage.align = StageAlign.TOP_LEFT;
             stage.frameRate = 30;
             stage.addEventListener(Event.RESIZE, resizeDisplay);
             var myFullScreenSprite:Sprite = MovieClip(usability_controls_mc.fullscreen_mc);
             myFullScreenSprite.buttonMode = true;
             myFullScreenSprite.addEventListener(MouseEvent.CLICK, _handleClick);
             pages_mc.page0_mc.title0_mc.mask = pages_mc.page0_mc.mask_mc;
             pages_mc.page0_mc.scrollBox_mc.sb.mask = pages_mc.page0_mc.scrollBox_mc.maskscrollbar_mc;
          private function goFullScreen():void
             if (stage.displayState == StageDisplayState.NORMAL)
                stage.displayState = StageDisplayState.FULL_SCREEN;
             else
                stage.displayState=StageDisplayState.NORMAL;
          private function _handleClick(event:MouseEvent):void
             trace("here!");
             goFullScreen();
          private function onPosition(e:Event):void
             var soundPosition:uint = Math.ceil(Math.ceil(Math.abs(sndChannel.position))/Math.ceil(Math.abs(mySound.length)) * 100);
             if (soundPosition == 90)
                removeEventListener(Event.ENTER_FRAME, onPosition);
                transform0.volume = 1;
                TweenMax.to(sndChannel, 12, {volume:0});
                var mySound2:Sound = new Sound();
                var context2:SoundLoaderContext = new SoundLoaderContext(1000, true);
                mySound2.load(new URLRequest(directoryPath + "14_Broken_Language.mp3"), context2);
                var sndChannel2:SoundChannel = mySound2.play();
                var transform:SoundTransform =  sndChannel2.soundTransform;
                transform.volume = 1;
                TweenMax.from(sndChannel2, 12, {volume:0});
          public function setDefaultStageSettings():void
             pages_mc.page0_mc.scrollBox_mc.mask_content_mc.width = swfWidth;
             pages_mc.page0_mc.bar6_mc.expandbar2_mc.width = swfWidth;
             pages_mc.page0_mc.bar5_mc.expandbar_mc.width = swfWidth;
             usability_controls_mc.x = swfWidth - usability_controls_mc.width;
             usability_controls_mc.y = swfHeight - usability_controls_mc.height;
             myWork.setStageHeight = swfHeight;
             myWork.setStageWidth = swfWidth;
             myWork.setupParameters(latestPage);
             myWork.runInitAnimation();
             trace("My stageWidth is: "+ myWork.setStageWidth);
             trace("My stageHeight is: "+ myWork.setStageHeight);
             pages_mc.y = swfHeight - 478;
             trace("Pages y is: " + pages_mc.y);
          public function resizeDisplay(e:Event):void
             swfWidth = stage.stageWidth;
             swfHeight = stage.stageHeight;
             myWork.setStageHeight = swfHeight;
             myWork.setStageWidth = swfWidth;
             pages_mc.page0_mc.scrollBox_mc.mask_content_mc.width = swfWidth;
             pages_mc.page0_mc.bar6_mc.expandbar2_mc.width = swfWidth;
             pages_mc.page0_mc.bar5_mc.expandbar_mc.width = swfWidth;
             usability_controls_mc.x = swfWidth - usability_controls_mc.width;
             usability_controls_mc.y = swfHeight - usability_controls_mc.height;
             pages_mc.y = uint(swfHeight - pages_mc.height);
    Here is Interface.as class
    Code: Select all
    package net.schemagroup.ui
       import gs.*;
       import gs.easing.*;
       import flash.events.*;
       import flash.display.*;
       import flash.utils.setTimeout;
       import flash.net.URLLoader;
       import flash.net.URLRequest;
       import flash.net.Socket;
       import flash.text.AntiAliasType;
       import flash.text.TextFieldAutoSize;
    a
       public class Interface extends MovieClip
          private var duration:Number;
          private var xml:XML;
          private var movContainer:MovieClip;
          private var movDropDownContainer:MovieClip;
          private var myMenuArray:Array;
          private var myMenuDropArray:Array;
          private var newY:uint;
          private var oldY:uint;
          private var spacer:int;
          private var timedProcess:int;
          private var myMainDrop:DropItem;
          public function Interface():void
             duration = 0.75;
             spacer = 12;
             myMenuDropArray = [];
             myMenuArray = [];
          public function revealInterface(myContainer:MovieClip):void
             trace("Revealing Interface!");
             movContainer = myContainer;
             movDropDownContainer = myContainer.container_mc;
             var yArray:Array = [-10.0,6,105];
             var delayArray:Array = [2,2.15,2.45];
             TweenMax.to(movContainer.logo_mc, duration, {y:yArray[0], delay:delayArray[0], alpha:1,timeScale:1, ease:Strong.easeOut});
             TweenMax.to(movContainer.bar0_mc, duration, {y:yArray[1], delay:delayArray[1], alpha:1,timeScale:1, ease:Strong.easeOut});
             TweenMax.to(movContainer.bar1_mc, duration, {y:yArray[2], delay:delayArray[2], alpha:1,timeScale:1, ease:Strong.easeOut, onComplete:loadXML});
          private function loadXML():void
             var testingSound = true;
             var xmlPath:String;
             if (testingSound)
                xmlPath = "../xml/interface.xml";
             else
                xmlPath = "xml/interface.xml";
             var xmlURLRequest:URLRequest = new URLRequest(xmlPath);
             var xmlURLLoader:URLLoader = new URLLoader(xmlURLRequest);
             xmlURLLoader.addEventListener(Event.COMPLETE, onComplete);
          private function onComplete(e:Event):void
             xml = new XML(e.target.data);
             //trace(xml);
             if (xml != null)
                buildInterface(xml);
             else
                trace("XML did not load successfully!");
          private function buildInterface(e:XML):void
             var xmlLength:uint = e.menu.section.page.length();
             var xmlLength2:uint = e.dropdown.section.item.length();
             //trace("XMLength is: "+ xmlLength);
             var xmlList:XMLList = new XMLList(e.menu.section.page);
             var xmlList2:XMLList = new XMLList(e.dropdown.section.item);
             myMainDrop = new DropItem();
             myMainDrop.mainDrop_mc.txt.text = e.dropdown.section.attribute("title");
             myMainDrop.mainDrop_mc.txt.autoSize = TextFieldAutoSize.LEFT;
             myMainDrop.mainDrop_mc.txt.antiAliasType = AntiAliasType.ADVANCED;
             myMainDrop.alpha = 0;
             myMainDrop.y = int(Math.round(myMainDrop.height / 2));
             myMainDrop.buttonMode = true;
             myMainDrop.mouseChildren = false;
             myMainDrop.addEventListener(MouseEvent.CLICK, dropDown);
             var yArray:Array = [0,spacer * 2];
             TweenMax.to(myMainDrop, duration, {y:int(spacer), alpha:1, ease:Strong.easeOut});
             movContainer.dropcontainer_mc.addChild(myMainDrop);
             oldY = uint(movContainer.dropcontainer_mc.y +  -  spacer);
             for (var i:uint = 0; i < xmlLength; i++)
                //trace(xmlList[i].title);
                var myItem:MenuItem = new MenuItem();
                myItem.myText_mc.txt.htmlText = xmlList[i].title.toString();
                myItem.myText_mc.txt.autoSize = TextFieldAutoSize.LEFT;
                myItem.myText_mc.txt.antiAliasType = AntiAliasType.ADVANCED;
                myItem.y = int(myItem.height + spacer) * i;
                myItem.alpha = 0;
                myMenuArray.push(myItem);
                var setDynamicDelay = Number("0." + 1) * i;
                trace(setDynamicDelay);
                myItem.mouseChildren = false;
                myItem.buttonMode = true;
                myItem.addEventListener(MouseEvent.CLICK, selectedPage);
                TweenMax.to(myItem, duration, {y:yArray[i], alpha:1, delay:setDynamicDelay, ease:Strong.easeOut});
                movContainer.container_mc.addChild(myItem);
             for (var j:uint = 0; j < xmlLength2; j++)
                //trace(xmlList[i].title);
                var dropItem:MenuItem = new MenuItem();
                dropItem.myText_mc.txt.text = xmlList2[j].title.toString();
                dropItem.myText_mc.txt.autoSize = TextFieldAutoSize.LEFT;
                dropItem.myText_mc.txt.antiAliasType = AntiAliasType.ADVANCED;
                dropItem.y = int(spacer) * j;
                dropItem.x = int(spacer);
                myMainDrop.container_mc.y =  -  int(myMainDrop.container_mc.height);
                newY = myMainDrop.container_mc.y;
                myMenuDropArray.push(dropItem);
                dropItem.buttonMode = true;
                dropItem.mouseChildren = false;
                dropItem.addEventListener(MouseEvent.CLICK, selectedPage);
                myMainDrop.mask_mc.height = myMainDrop.container_mc.height;
                movDropDownContainer.addChild(dropItem);
                if(j >= xmlLength2-1)
                   //timedProcess = setTimeout(revealDropDown, 400);
          private function dropDown(e:MouseEvent):void
             revealDropDown();
          private function selectedPage(e:MouseEvent):void
          public function revealDropDown():void
             TweenMax.to(movDropDownContainer, 1, {y:200, ease:Strong.easeOut});
             TweenMax.to(myMenuArray[1], 1, {y:movDropDownContainer.height + spacer + spacer/2, ease:Strong.easeOut});
    Here is LatestWorks.as class
    Code: Select all
    package net.schemagroup
       import gs.*;
       import gs.easing.*;
       import flash.events.*;
       import flash.net.URLLoader;
       import flash.net.URLRequest;
       import flash.geom.Rectangle;
       import flash.net.Socket;
       import flash.display.*;
       import flash.utils.*;
       import flash.filters.BlurFilter;
       import flash.text.AntiAliasType;
       import flash.text.TextFieldAutoSize;
       import net.schemagroup.ui.Interface;
       public class LatestWorks extends Interface {
          private var currentCount:uint;
          private var setDelays:Array;
          private var imageTarget:Array;
          private var myXCordBoxArray:Array;
          private var myYCordBoxArray:Array;
          private var setBlurX:Array;
          private var setBlurY:Array;
          private var setTimeScale:Number;
          private var setDuration:Number;
          private var passXMLength:Number;
          private var imageRatio:Number;
          private var xmlPath:String;
          private var timedProcess:Number;
          private var xmlLength:int;
          private var xmlLength2:int;
          private var xmlURLRequest:URLRequest;
          private var xmlURLLoader:URLLoader;
          private var xml:XML;
          private var categorySelector:uint;
          private static var spacer:int=10;
          private var passMask:Sprite;
          private var passScrollBar:MovieClip;
          private var projectItemURL:Array;
          public var catButtonsArray:Array;
          public var passContainer:MovieClip;
          public var whatState:Boolean;
          private var imageDirectory:String;
          private var counter:Number;
          private var projectImageWidth:Number;
          private var testingXML:Boolean;
          public var btnClicked:Boolean;
          private var passedArray:Array;
          public var scrollBarWidth:Number;
          public var whatCategory:int;
          public var increment:int;
          public var increment2:int;
          private var swfWidth:int;
          private var swfHeight:int;
          private var projectsLoaded:Boolean;
          private static const tintColor:int=0x0180AA;
          public var mainObject:MovieClip;
          private var myInterface:MovieClip;
          private var myThumbContainer:DisplayObjectContainer;
          private var someInterface:Interface;
          public function LatestWorks():void
             this.projectsLoaded=false;
             this.increment=0;
             this.increment2=0;
             this.catButtonsArray=[];
             testingXML=true;
             if (testingXML) {
                imageDirectory="../images/";
                xmlPath="../xml/portfolio.xml";
             } else {
                imageDirectory="images/";
                xmlPath="xml/portfolio.xml";
          public function setupParameters(latestPage:MovieClip):void {
             this.mainObject = latestPage;
             this.passScrollBar= mainObject.scrollBox_mc.sb.scrollbar_mc;
             this.passMask= mainObject.mask_mc;
             this.passContainer= mainObject.scrollBox_mc.content_mc;
             counter=30;
             setBlurX = [5,
             5,
             5,
             0,
             150,
             150,
             10];
             setBlurY = [10,
             10,
             10,
             10,
             150,
             150,
             0];
             myXCordBoxArray = [-260,
                -55,
                -147,
                271,
                289,
                this.swfWidth+577,
                this.swfWidth+368];
             myYCordBoxArray = [this.swfHeight + -50,
                this.swfHeight + -167,
                this.swfHeight + -309,
                this.swfHeight + 72,
                this.swfHeight + 72,
                this.swfHeight + 142,
                72];
             setDelays=[0,0.35,0.55,0.75,0.95,1.15,1.35,1.45];
             setTimeScale=2;
             this.mainObject.categoryHolder_mc.mask = this.mainObject.mask_category_mc;
             setDuration=0.75;
          public function runInitAnimation():void {
             var objectLength:uint = 7;
             for (var i:int = 0; i < objectLength; i++) {
                var myMC:DisplayObject = this.mainObject["bar"+i+"_mc"];
                //trace("Counter is: " + i + " " + myMC.name + " Ycord is: "+  myYCordBoxArray[i]);
                TweenMax.from(myMC, setDuration, {blurFilter:{blurX:setBlurX[i],
                  blurY:setBlurX[i]},
                  x:myXCordBoxArray[i],
                  y:myYCordBoxArray[i],
                  delay:setDelays[i],
                  timescale:Math.random() * setTimeScale,
                  ease:Back.easeInOut});
                if (i>=4) {
                   TweenMax.from(mainObject.bar5_mc, setDuration, {blurFilter:{blurX:setBlurX[5],
                    blurY:setBlurY[5]},
                    x:myXCordBoxArray[5],
                    delay:setDelays[5],
                    ease:Strong.easeOut});
                   TweenMax.from(mainObject.bar6_mc, setDuration, {blurFilter:{blurX:setBlurX[6],
                    blurY:setBlurX[6]},
                    x:myXCordBoxArray[6],
                    delay:setDelays[6],
                    ease:Strong.easeOut});
                   TweenMax.to(this.passMask, setDuration, {scaleX:1, delay:2, ease:Strong.easeOut, onStart:AssignXMLSettings});
                   break;
          public function AssignXMLSettings():void {
             xmlURLRequest=new URLRequest(xmlPath);
             xmlURLLoader=new URLLoader(xmlURLRequest);
             xmlURLLoader.addEventListener(Event.COMPLETE, onLoaded);
          public function onLoaded(e:Event):void {
             xml=new XML(e.target.data);
             if (xml.data!=null) {
                trace(xmlPath + " successfully loaded!");
                buildPortfolio(xml);
                buildCatMenu(xml);
                TweenMax.to(mainObject.categoryHolder_mc, 0.75, {y:221, ease:Strong.easeOut});
                TweenMax.to(mainObject.scrollBox_mc.maskscrollbar_mc, setDuration, {scaleX:1,  ease:Strong.easeOut});
             } else {
                trace(xmlPath + " did not load successfully!");
          public function buildCatMenu(e:XML):void {
             var xmlList:XMLList=e.category.items.catitem;
             xmlLength2=xmlList.length();
             var XPos:int=0;
             var myCatMain:CatItem = new CatItem();
             myCatMain.category_txt.htmlText=e.category.@main;
             myCatMain.category_txt.autoSize=TextFieldAutoSize.LEFT;
             myCatMain.category_txt.antiAliasType=AntiAliasType.ADVANCED;
             mainObject.categoryHolder_mc.addChild(myCatMain);
             var TextValue:int=myCatMain.width;
             for (var i:uint = 0; i < xmlLength2; i++) {
                var myCatItem:CatItem = new CatItem();
                myCatItem.category_txt.htmlText=xmlList[i].title;
                myCatItem.category_txt.autoSize=TextFieldAutoSize.LEFT;
                myCatItem.category_txt.antiAliasType=AntiAliasType.ADVANCED;
                myCatItem.btnClicked=xmlList[i].@setDefault;
                myCatItem.whatCategory=i;
                //trace(xmlList[i].@setState);
                myCatItem.x=TextValue;
                XPos=myCatItem.width;
                catButtonsArray.push(myCatItem);
                TextValue+=Number(spacer+XPos);
                mainObject.categoryHolder_mc.addChild(myCatItem);
                myCatItem.buttonMode=true;
                myCatItem.mouseChildren=false;
                myCatItem.addEventListener(MouseEvent.CLICK, catClick);
                myCatItem.addEventListener(MouseEvent.MOUSE_OVER, catOver);
                myCatItem.addEventListener(MouseEvent.MOUSE_OUT, catOut);
                if (catButtonsArray[i].btnClicked==true) {
                   catButtonsArray[i].buttonMode=false;
                   catButtonsArray[i].mouseEnabled=false;           
                   TweenMax.to(catButtonsArray[i], 1, {tint:tintColor, delay:0.45, ease:Strong.easeOut});
          private function catClick(e:MouseEvent):void {
             var myButton:MovieClip=MovieClip(e.currentTarget);
             if(projectsLoaded)
             projectsLoaded = false;
             myButton.buttonMode=false;
             myButton.mouseEnabled=false;
             TweenMax.to(myButton, 1, {tint:tintColor, ease:Strong.easeOut});
             categorySelector = myButton.whatCategory;
             removeItems();
             validateCategories();
             myButton.btnClicked=true;
             changeTitle(myButton.category_txt.text);
          public function removeItems():void {
             //trace("Remove items fired!");
             var setDynamicDelay:Number;
             for (var i:int = 0; i < xmlLength; i++)
             setDynamicDelay = Number("0."+ 1) * i;
             var myItem:MovieClip = imageTarget[i];
             //trace(myItem.name);
             //trace("RemoveItem count is: "+ i + " out of " + Number(xmlLength-1));
             TweenMax.to(myItem, 1, {blurFilter:{blurY:50},
             y:this.swfHeight - myItem.height,
             ease:Strong.easeOut,
             delay:setDynamicDelay,
             onComplete:removeTarget,
             ease:Strong.easeOut});
          public function removeTarget():void {
             increment++;
             //trace("Increment is: "+ increment);
             this.passContainer.removeChildAt(0);
             if (increment >= Number(xmlLength))
                increment = 0;
                //trace("Increment is: "+ increment);
                //trace("Increment is equal to: "+ Number(xmlLength-1));
                buildPortfolio(xml);
          private function validateCategories():void {
             for (var i:int = 0; i < xmlLength2; i++)
                if (catButtonsArray[i].btnClicked==true)
                   TweenMax.to(catButtonsArray[i], 1, {removeTint:true, ease:Strong.easeOut});
                   catButtonsArray[i].buttonMode=true;
                   catButtonsArray[i].mouseEnabled=true;
                   catButtonsArray[i].btnClicked=false;
          private function changeTitle(e:String):void {
             TweenMax.to(mainObject.mask_mc, 0.75, {scaleX:0, ease:Strong.easeOut, onComplete:loadTitle, onCompleteParams:[e]});
          private function loadTitle(e:String) {
             mainObject.title0_mc.title_txt.htmlText=e;
             if(e == "WEBSITES")
             TweenMax.to(mainObject.title0_mc, 0.75, {x:120, delay:0.45, ease:Strong.easeOut});
             TweenMax.to(mainObject.bar6_mc, 0.75, {x:550, delay:0.45, ease:Strong.easeOut});
             TweenMax.to(mainObject.mask_mc, 0.75, {scaleX:1, delay:0.45, ease:Strong.easeOut});
             }else{
             TweenMax.to(mainObject.title0_mc, 0.75, {x:226, delay:0.45, ease:Strong.easeOut});
             TweenMax.to(mainObject.bar6_mc, 0.75, {x:656, delay:0.45, ease:Strong.easeOut});
             TweenMax.to(mainObject.mask_mc, 0.75, {scaleX:1, delay:0.45, ease:Strong.easeOut});
          public function buildPortfolio(e:XML):void
             trace("Building Portfolio!");
             //trace("XML category is: " + categorySelector);
             var xmlList:XMLList=e.projectitem[categorySelector].item;
             xmlLength=xmlList.length();
             //trace("Length of section is: " + xmlLength);
             var itemGap:Number=20;
             var setDynamicDelay:Number;
             currentCount=0;
             passXMLength=Number(xmlLength);
             var imageRatio:uint=passXMLength/passXMLength;
             //trace("Image ratio is: " + imageRatio);
             imageTarget=[];
             projectItemURL=[];
             for (var i:uint = 0; i < xmlLength; i++)
                /*trace("-----------------------------------");
                trace("Client is: " + xmlList[i].client);
                trace("Description is: " + xmlList[i].description);
                trace("Platform is: " + xmlList[i].platform);
                trace("Launch is: " + xmlList[i].launch);
                trace("-----------------------------------");
                var myItem:ProjectItem = new ProjectItem();
                myItem.name="item"+i+"_mc";
                myItem.x=Number(myItem.width+itemGap)*i;
                myItem.y=Number(this.swfHeight/2 - myItem.height);
                projectImageWidth=Number(myItem.width+itemGap)*i;
                //trace("Project image width is: " + projectImageWidth);
                this.passContainer.addChild(myItem);
                imageTarget.push(myItem);
                //trace(imageTarget[i].name);
                myItem.text_mc.description_txt.htmlText = xmlList[i].description.toString();
                myItem.text_mc.description_txt.wordWrap = true;
                myItem.text_mc.description_txt.autoSize = TextFieldAutoSize.LEFT;
                myItem.text_mc.description_txt.antiAliasType = AntiAliasType.ADVANCED;
                projectItemURL.push(imageDirectory + xmlList[i].attributes());
                setDynamicDelay = Number("0."+1)*i;
                TweenMax.to(myItem, 0.75, {blurFilter:{blurY:50}});
                TweenMax.to(myItem, 0.75, {blurFilter:{blurY:0}, y:0, delay:setDynamicDelay, ease:Strong.easeOut});
                if (i == xmlLength-1) {
                   trace("Preloading images!");
                   //preloadImages(projectItemURL,imageTarget);
                   preloadImages();
                   timedProcess = setTimeout(initRevealDropDown, 10000);
                   this.passScrollBar.width=Number(myItem.width+itemGap/imageRatio);
          public function initRevealDropDown():void
             clearTimeout(timedProcess);
             someInterface = new Interface();
             someInterface.revealDropDown();
          private function preloadImages() {
             var loaderURLRequest:URLRequest=new URLRequest(projectItemURL[currentCount]);
             var loader:Loader = new Loader();
             loader.contentLoaderInfo.addEventListener(Event.OPEN, _onOpen);
             loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, _onProgress);
             loader.contentLoaderInfo.addEventListener(Event.COMPLETE, _handleImageLoaded);
             loader.load(loaderURLRequest);
          private function _onOpen(e:Event):void {
             //trace("loading started!");
             imageTarget[currentCount].preloader_mc.gotoAndPlay("play");
          private function _onProgress(e:ProgressEvent):void {
             var loadBytes:Number=e.target.bytesLoaded;
             var totalBytes:Number=e.target.bytesTotal;
             var percent:Number=Math.ceil(loadBytes/totalBytes*100);
             //trace("BytesLoaded: " + loadBytes + " out of " + totalBytes + " Percentage: " + percent);
             imageTarget[currentCount].preloader_mc.percent_mc.pct_txt.text=Math.ceil(loadBytes/totalBytes*10).toString();
          private function _handleImageLoaded(e:Event):void {
             //trace("Finished loading: " + e.target.url);
             imageTarget[currentCount].preloader_mc.percent_mc.pct_txt.text="";
             imageTarget[currentCount].container_mc.alpha=0;
             imageTarget[currentCount].container_mc.addChild(Bitmap(e.target.content));
             imageTarget[currentCount].preloader_mc.stop();
             TweenMax.to(imageTarget[currentCount].preloader_mc, 0.75, {alpha:0, ease:Strong.easeOut});
             TweenMax.to(imageTarget[currentCount].container_mc, 0.75, {alpha:1, ease:Strong.easeOut});
          if (currentCount<passXMLength-1)
                currentCount++;
                preloadImages();
             }else if(currentCount >= passXMLength-1)
                //trace("Current count is equal to xmlLength!");
                projectsLoaded = true;
                //trace("ProjectsLoaded is: "+ projectsLoaded);
          private function catOver(e:MouseEvent):void {
             var myButton:MovieClip=MovieClip(e.currentTarget);
             TweenMax.to(myButton, 1, {tint:tintColor, ease:Strong.easeOut});
          private function catOut(e:MouseEvent):void {
             var myButton:MovieClip=MovieClip(e.currentTarget);
             if (myButton.btnClicked!=true) {
                TweenMax.to(myButton, 1, {removeTint:true, ease:Strong.easeOut});
          public function get selectCategory():uint {
             return this.categorySelector;
          public function set selectCategory(e:uint):void {
             this.categorySelector=e;
          public function get getState():Boolean {
             return this.whatState;
          public function set getState(setState:Boolean):void {
             this.whatState=setState;
          public function get setStageHeight():int
             return swfHeight;
          public function set setStageHeight(whatHeight:int):void
             swfHeight = whatHeight;
          public function get setStageWidth():int
             return swfWidth;
          public function set setStageWidth(whatWidth:int):void
             swfWidth = whatWidth;
    Please anybody, it would be very helpful since i'm still trying to tackle as3 classes.
    thanks
    abe

    so, movDropDownContainer (which i know is myContainer.container_mc) doesn't exist WHEN revealDropDown() is called (and that error message is displayed).
    we already know it does exist and movDropDownContainer is defined correctly when your constructor is called so some time after that the timeline that contains myContainer.container_mc must move and it no longer exists or actionscript is used to remove the movieclip.
    the most subtle way that can happen is with a timeline created instance (ie, created in the ide).  there are lots of ways this can happen.  obviously, if you see that your timeline moves to or through a frame where myContainer.container_mc doesn't exist, it should be clear why you're seeing that error message.  but this error can be caused by more difficult to understand situations.
    for example, if it appears that movieclip is in every frame but it's in a layer with more than 1 keyframe, then you can have identically named instances (and that all look the same) that are not the same instance.  in fact, the only sure way to know that movieclip exists in keyframes where it appears to exist is to clear all the keyframes in its layer (after the first keyframe where it appears) and then create all the additional keyframes.  at that point, if you do not remove the movieclip from the stage, in any keyframes, all the instances will be the same.  if you do anything else or you've done anything else, you're going to run into this problem.

  • Error   1009 and I don't know what to do exactly, plz help me

    hi
    I wish that you could help me
    I am a beginner in actionscript 3.0, and I have a main swf file, with a menu and several buttons, when I click on each button, a new swf should be loaded, and the menu is resized and goes to the top left of the page, and if I click on the menu, it should come back..
    the problem is that when I click on the first button, everything works well, but when I click on another button, I get this error:
    TypeError: Error #1009: Il est impossible d'accéder à la propriété ou à la méthode d'une référence d'objet nul.
        at s_fla::MainTimeline/s_fla::__setProp___id0__Scene1_texte_2()
        at s_fla::MainTimeline/s_fla::frame2()
    I understood that the problem is due to the file which is displayed before it has been loaded.
    I also found that I have to use the function Event.ADDED_TO_STAGE, but I don't know where to put it??
    could you help me please?
    here is my code:
    function size(e:MouseEvent):void{
        menu_mc.gotoAndPlay(2);
        menu_mc.buttonMode = true;
        menui_mc.addEventListener(MouseEvent.CLICK, showmenu);
        menu_mc.button01_btn.removeEventListener(MouseEvent.CLICK, size);
        menu_mc.button02_btn.removeEventListener(MouseEvent.CLICK, size);
       menu_mc.button03_btn.removeEventListener(MouseEvent.CLICK, size);
    addChild (cliploader);
    function size(e:MouseEvent):void{
        menu_anatomie_mc.gotoAndPlay(13);
        menu_mc.removeEventListener(MouseEvent.CLICK, showmenu);
        menu_mc.button01_btn.addEventListener(MouseEvent.CLICK, size);
        menu_mc.button02_btn.addEventListener(MouseEvent.CLICK, size);
        menu_mc.button03_btn.addEventListener(MouseEvent.CLICK, size);
        removeChild (cliploader);
    menu_mc.button01_btn.addEventListener(MouseEvent.CLICK, loadpage);
    menu_mc.button02_btn.addEventListener(MouseEvent.CLICK, loadpage);
    menu_mc.button03_btn.addEventListener(MouseEvent.CLICK, loadpage);
    menu_mc.button01_btn.page = "file01.swf";
    menu_mc.button02_btn.page = "file02.swf";
    menu_mc.button03_btn.page = "file03.swf";
    function loadpage(e:MouseEvent):void{
        cliploader.myldr.source = e.currentTarget.page;
    please tell me what to do exactly
    P.S: cliploader is a UI loader which is present on the scene
    in my swf files, I have flvplayback which loads a flv files, and I think this is the source of the problem, because I have tried the same thing with a simple swf file which maybe loads quickly, and I didn't get this error
    thank you in advance

    thanks
    I think that the error is in the file that I want to load, in this file I have a flvplayback that I named myplayer, which is in the third frame, and because the video doesn't stop even if I move to another frame, I had to add this code in the third frame
    next_btn.visible = true;
    prev_btn.visible = true;
    myplayer.addEventListener(Event.REMOVED_FROM_STAGE, stopPlay);
    function stopPlay(e:Event)
    myplayer.stop();
    myplayer.stop(); this is line 7 on frame 3
    when I publish this file, it works
    but when I try to play it from the menu in the main swf file I get the error, how can I fix it please?
    can I make this manually, or I'll have the same problem?
    as I said, I tried to load different swf files from the main menu and I didn't have this problem (because there were no video players), so I think the problem is caused by the video player?
    thank you

  • Custom itemRenderer component based on cell value: error 1009

    I'm working on an item renderer for a dataGrid that has different states depending on the cell and row values.
    The cell value is a toggle (true or null), and sets whether content should be shown in the cell or not
    The row properties determine what is shown when the cell value is true.
    The dataGrid dataProvider is populated based on user id input.
    I created the itemRenderer as a custom actionscript component, closely following this example:
    360Flex Sample: Implementing IDropInListItemRenderer to create a reusable itemRenderer
    However, my component results in Error #1009 (Cannot access a property or method of a null object reference) when a user id is submitted.
    package components
         import mx.containers.VBox;
         import mx.controls.*;     import mx.controls.dataGridClasses.DataGridListData;
         import mx.controls.listClasses.BaseListData;
         import mx.core.*;
         public class toggleCellRenderer extends VBox
              public function ToggleCellRenderer()
              {super();}
              private var _listData:BaseListData;   
                   private var cellState:String;
                   private var cellIcon:Image;
                   private var imagePath:String;
                   private var imageHeight:int;
                   private var qty:String = data.qtyPerTime;
                   private var typ:String = data.type;
              public function get listData():BaseListData
                   {return _listData;}
              public function set listData(value:BaseListData):void
                   {_listData = value;}
              override public function set data(value:Object):void {
                   super.data = value;
                   if (value != null)
                   //errors on next line: Error #1009: Cannot access a property or method of a null object reference.
                   {cellState = value[DataGridListData(_listData).dataField]}
              override protected function createChildren():void {
                   removeAllChildren();
                   if(cellState=='true'){
                        cellIcon = new Image();
                        addChild(cellIcon);
                   //there is another state here that adds another child...
              //next overrides commitProperties()...
    There are no errors if I don't use an itemRenderer--the cells correctly toggle between "true" and empty when clicked.
    I also tried a simple itemRenderer component that disregards the cell value and shows in image based off row data--this works fine without errors or crashing. But I need to tie it to the cell value!
    I have very limited experience programming, in Flex or any other language. Any help would be appreciated.

    Your assumption that the xml file either loads with "true" or nothing  is right.
    After modifying the code to the following, I don't get the error, but it's still not reading the cell value correctly.
    package components
         import mx.containers.VBox;
         import mx.controls.*;   
         import mx.controls.dataGridClasses.DataGridListData;
         import mx.controls.listClasses.BaseListData;
         import mx.core.*;
         public class toggleCellRenderer extends VBox
              public function ToggleCellRenderer()
               super();
              private var _listData:BaseListData;   
              private var cellState:Boolean;
              private var cellIcon:Image;
              private var imagePath:String;
              private var imageHeight:int;
              private var qty:String;
              private var typ:String;
               public function get listData():BaseListData
                 return _listData;
              override public function set data(value:Object):void {
                   cellState = false;
                   if (listData && listData is DataGridListData && DataGridListData(listData).dataField != null){
                       super.data = value;
                       if (value[DataGridListData(this.listData).dataField] == "true"){
                           cellState = true;
              override protected function createChildren():void {
                   removeAllChildren();
                   if(cellState==true){
                        cellIcon = new Image();
                        addChild(cellIcon);
                   //there is another state here that adds another child...
              //next overrides commitProperties()...
    - didn't set the value of qty or typ in the variable declarations (error 1009 by this too--I removed this before but wanted to point out in case its useful)
    - added back in the get listData() function so I could use the listData
    - changed the null check
    All cells are still returning cellState = false when some are set to true, even if I comment out [if (value[DataGridListData(this.listData).dataField] == "true")] and just have it look for non-null data. That shouldn't make a difference anyway, but it confirms that all cells are returning null value.
    Swapping out the first if statement in set data with different variables results in the following:
    [if (listData != null)]  all cells return null (cellState=false for all)
    both [if (value != null)] and  [if (DataGridListData != null)]  results in error 1009 on a line following the if, so I assume they return non-null values.
    All rows have data, just not all fields in all rows, so shouldn't listData be non-null?  Could it be that the xml file hasn't fully loaded before the itemRenderer kicks in?
    I also realized  I had removed the item renderer from many of the columns for testing, and since some columns are hidden by default only one column in the view was using the itemRenderer--hence the single alert per row I was worried about earlier.
    Thanks for your help so far.

Maybe you are looking for

  • HT5639 Why do several applications open when I first open the internet?

    Why do several pages open up when I first open the internet?

  • The "All" Tab in Notification Center doesn't populate

    The Today Tab shows stocks, calendar and an entry telling me I have an all day appointment tomorrow but it doesn't say what it is. The "All" Tab is completely empty even though I have email messages, and calendar events scheduled. Is there a setting

  • Safari browser freez

    Hi, Just got iPhone 4s and noticed that after visiting multiple different sites, the Safari browser starts to freez.  It does not load previously visited site.  To resolve the issue, either a restart or leave the phone unused for few mints and then i

  • Fcpx on osx mavericks

    i've just updated to OS x mavericks so, FCPX 10.0.8 not works and the fan always runs...what can i do ???? help!!

  • Miro install problem [Solved]

    I' ve installed miro from community repo, but I have some problem.... [stefano@archbox ~]$ miro /usr/lib/python2.5/site-packages/dbus_bindings.py:1: DeprecationWarning: The dbus_bindings module is not public API and will go away soon. Most uses of db