The Ole #1009: Cannot access a property or method of a null object reference ...
To anyone that can help me I say thank you first I also say thank you to anyone else that attempts to help. I am sure this will be an easy one for most of you but I am completely stumped. I am a newbee to AS.
I have a movie that has navigation butttons and they all work find. On a scene in the movie I have an image that grows grows from alpha 0 to 100%. When you Mouse_Over the alpha drops to -.6 and when you Mouse_Out it goes back to 1. I have this in frame 1 and this scene takes place between frames 115 and 166. When I execute a Mouse.Click on the movieClip (contact_us_gel) I am moved to the emailScene. The bad news is when I click the movieClip I get the below. I change the movieClip to be on the stage for entire movie from frame 1 to 166 in hopes to loose this error. As you can tell that didn't work. Below is the AS code that I have written. I use this same code for my navigation buttons and I have no issues. I have officially had my butt kicked by this one.
I have tried removing the eventListner and that just really messes me up until I go to the homeScene (frame 1) and add the event listner back for he contact_us_gel.
The Trace & Error from the outPut.....
Frame on Gel MouseOut 228 <<-- Trace statement when I click the gel / This is also where the email scene stars
TypeError: Error #1009: Cannot access a property or method of a null object reference.
at barnumRealtyGroup_fla::MainTimeline/outCUG()[barnumRealtyGroup_fla.MainTimeline::frame1:1 31]
The code
//-- ContactUsGel --\\
contact_us_gel.addEventListener(MouseEvent.MOUSE_OVER,rolloverCUG);
contact_us_gel.addEventListener(MouseEvent.MOUSE_OUT,outCUG);
contact_us_gel.addEventListener(MouseEvent.CLICK,playHomeSceneCUG);
function rolloverCUG(event:MouseEvent):void{
contact_us_gel.alpha -= 0.6
function outCUG(evnt:MouseEvent):void{
trace("Frame on Gel MouseOut "+this.currentFrame);
contact_us_gel.alpha = 1; //this is where I am dying.... This is frame1:Line131
function playHomeSceneCUG(event:MouseEvent):void{
trace("Frame on Gel Going to Email "+this.currentFrame);
gotoAndPlay("emailScene");
Thank you in advance...
I follow you and something that I failed to mention is that this is happening only when I execute a MouseEvent.Click on contact_us_gel. While looking at this after my post and testing what is happening is outCUG() is called during the MouseEvent.Click which calls playHomeSceneCUG() << takes me to emailScene. That is what is killing me I have not found a proper way to isolate that MouseEvent.Click and not allow it to call outCUG(). I know you are the GURU but did I confuse you.
Similar Messages
-
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}}); -
Dear Sir,
I really need your valuable assistance i was about to finish a project but at very last moment i am stuck. Here is the explanation below...
I have two files called "holder.swf" and "slide.swf" i want to improt the "slide.swf" using this action below
var myLoader:Loader = new Loader();
var url:URLRequest = new URLRequest("slide.swf");
myLoader.load(url);
addChild(myLoader);
myLoader.x = 2;
myLoader.y = 2;
Also i have attached the flash file of "holder.swf". My concern is the moment i am calling the "slide.swf" inside the "holder.swf" it is showing the following error...
" TypeError: Error #1009: Cannot access a property or method of a null object reference.
at FC_Home_Ads_Holder_v2_fla::MainTimeline() "
Here are the files uploaded for your reference, please download this file http://www.touchpixl.com/ForumsAdobecom.zip
This error is being occured from "MainTimeline.as" file here is the code been use inside of this file below....
package FC_Home_Ads_Holder_v2_fla
import __AS3__.vec.*;
import adobe.utils.*;
import com.danehansen.*;
import com.greensock.*;
import com.greensock.easing.*;
import com.greensock.plugins.*;
import flash.accessibility.*;
import flash.desktop.*;
import flash.display.*;
import flash.errors.*;
import flash.events.*;
import flash.external.*;
import flash.filters.*;
import flash.geom.*;
import flash.globalization.*;
import flash.media.*;
import flash.net.*;
import flash.net.drm.*;
import flash.printing.*;
import flash.profiler.*;
import flash.sampler.*;
import flash.sensors.*;
import flash.system.*;
import flash.text.*;
import flash.text.engine.*;
import flash.text.ime.*;
import flash.ui.*;
import flash.utils.*;
import flash.xml.*;
public dynamic class MainTimeline extends flash.display.MovieClip
public function MainTimeline()
new Vector.<String>(6)[0] = "Productivity";
new Vector.<String>(6)[1] = "Leadership";
new Vector.<String>(6)[2] = "Execution";
new Vector.<String>(6)[3] = "Education";
new Vector.<String>(6)[4] = "Speed of Trust";
new Vector.<String>(6)[5] = "Sales";
super();
addFrameScript(0, this.frame1);
return;
public function init():void
var loc1:*=null;
com.greensock.plugins.TweenPlugin.activate([com.greensock.plugins.Aut oAlphaPlugin]);
loc1 = new flash.net.URLLoader(new flash.net.URLRequest(this.XML_LOC));
var loc2:*;
this.next_mc.buttonMode = loc2 = true;
this.prev_mc.buttonMode = loc2;
stage.scaleMode = flash.display.StageScaleMode.NO_SCALE;
stage.align = flash.display.StageAlign.TOP_LEFT;
loc1.addEventListener(flash.events.Event.COMPLETE, this.xmlLoaded, false, 0, true);
this.prev_mc.addEventListener(flash.events.MouseEvent.CLICK, this.minusClick, false, 0, true);
this.next_mc.addEventListener(flash.events.MouseEvent.CLICK, this.plusClick, false, 0, true);
return;
public function xmlLoaded(arg1:flash.events.Event):void
var loc1:*=null;
var loc2:*=0;
this.xmlData = new XML(arg1.target.data);
loc2 = 0;
while (loc2 < this.LABELS.length)
loc1 = new Btn(this.LABELS[loc2], loc2);
this.btnHolder_mc.addChild(loc1);
this.BTNS.push(loc1);
trace(this.LABELS[loc2]);
++loc2;
this.current = uint(this.xmlData.@firstPick);
trace("-----width-----");
trace(this.contentMask.width);
var loc3:*=this.contentMask.width / this.LABELS.length;
trace(loc3);
loc2 = 0;
while (loc2 < this.BTNS.length)
this.BTNS[loc2].width = loc3;
this.BTNS[loc2].x = loc3 * loc2;
++loc2;
this.btnHolder_mc.addEventListener(flash.events.MouseEvent.CLICK, this.numClick, false, 0, true);
this.selectMovie();
return;
public function numClick(arg1:flash.events.MouseEvent):void
this.killTimer();
this.current = arg1.target.i;
this.selectMovie();
return;
public function killTimer():void
this.timerGoing = false;
if (this.timer)
this.timer.reset();
this.timer.addEventListener(flash.events.TimerEvent.TIMER, this.plusClick, false, 0, true);
this.timer = null;
return;
public function selectMovie():void
if (this.timerGoing)
this.timer = new flash.utils.Timer(uint(this.xmlData.ad[com.danehansen.MyMath.modulo(t his.current, this.xmlData.ad.length())].@delay), 1);
this.timer.start();
this.timer.addEventListener(flash.events.TimerEvent.TIMER, this.plusClick, false, 0, true);
while (this.holder_mc.numChildren > 0)
this.holder_mc.removeChild(this.holder_mc.getChildAt(0));
var loc1:*=new flash.display.Loader();
loc1.load(new flash.net.URLRequest(this.xmlData.ad[com.danehansen.MyMath.modulo(thi s.current, this.xmlData.ad.length())].@loc));
this.holder_mc.addChild(loc1);
var loc2:*=0;
while (loc2 < this.BTNS.length)
this.BTNS[loc2].deselect();
++loc2;
this.BTNS[com.danehansen.MyMath.modulo(this.current, this.xmlData.ad.length())].select();
var loc3:*=this.BTNS[com.danehansen.MyMath.modulo(this.current, this.xmlData.ad.length())].x + this.BTNS[com.danehansen.MyMath.modulo(this.current, this.xmlData.ad.length())].width / 2 + this.btnHolder_mc.x;
trace("addLength:" + this.xmlData.ad.length());
trace(loc3, com.danehansen.MyMath.modulo(this.current, this.xmlData.ad.length()));
com.greensock.TweenLite.to(this.indicator_mc, 0.3, {"x":loc3, "ease":com.greensock.easing.Cubic.easeOut});
loc1.contentLoaderInfo.addEventListener(flash.events.Event.COMPLETE, this.adLoaded, false, 0, true);
return;
public function adLoaded(arg1:flash.events.Event):void
var evt:flash.events.Event;
var loc1:*;
evt = arg1;
try
evt.target.content.xmlData = this.xmlData.ad[com.danehansen.MyMath.modulo(this.current, this.xmlData.ad.length())];
catch (er:Error)
return;
public function minusClick(arg1:flash.events.MouseEvent):void
this.killTimer();
var loc1:*;
var loc2:*=((loc1 = this).current - 1);
loc1.current = loc2;
this.selectMovie();
return;
public function plusClick(arg1:flash.events.Event):void
if (arg1.type != "timer")
this.killTimer();
var loc1:*;
var loc2:*=((loc1 = this).current + 1);
loc1.current = loc2;
this.selectMovie();
trace("next");
return;
public function ENDED(arg1:flash.events.Event):void
if (arg1.type != "timer")
this.killTimer();
var loc1:*;
var loc2:*=((loc1 = this).current + 1);
loc1.current = loc2;
this.selectMovie();
trace("next");
return;
public function STARTED(arg1:flash.events.Event):void
this.killTimer();
return;
function frame1():*
this.timerGoing = true;
addEventListener("endNow", this.ENDED, false, 0, true);
addEventListener("startNow", this.STARTED, false, 0, true);
this.init();
return;
public const XML_LOC:String=stage.loaderInfo.parameters.xmlLoc ? stage.loaderInfo.parameters.xmlLoc : "home_ads.xml";
public const LABELS:__AS3__.vec.Vector.<String>=new Vector.<String>(6);
public const BTNS:__AS3__.vec.Vector.<Btn>=new Vector.<Btn>();
public const TRANSITION_TIME:Number=0.2;
public var contentMask:flash.display.MovieClip;
public var btnHolder_mc:flash.display.MovieClip;
public var holder_mc:flash.display.MovieClip;
public var indicator_mc:flash.display.MovieClip;
public var prev_mc:flash.display.MovieClip;
public var next_mc:flash.display.MovieClip;
public var current:int;
public var xmlData:XML;
public var timer:flash.utils.Timer;
public var timerGoing:Boolean;
Here is the folder uploaded on the server for you to get clear picture, please click on this link to download the entire folder. http://www.touchpixl.com/ForumsAdobecom.zip
I am not being able to resolve the issue, it needs a master to get the proper solution. I would request you to help me.
Thanks & Regards
Sanjib DasHere is the entire code of MainTimeline.as below, please correct it.
package FC_Home_Ads_Holder_v2_fla
import __AS3__.vec.*;
import adobe.utils.*;
import com.danehansen.*;
import com.greensock.*;
import com.greensock.easing.*;
import com.greensock.plugins.*;
import flash.accessibility.*;
import flash.desktop.*;
import flash.display.*;
import flash.errors.*;
import flash.events.*;
import flash.external.*;
import flash.filters.*;
import flash.geom.*;
import flash.globalization.*;
import flash.media.*;
import flash.net.*;
import flash.net.drm.*;
import flash.printing.*;
import flash.profiler.*;
import flash.sampler.*;
import flash.sensors.*;
import flash.system.*;
import flash.text.*;
import flash.text.engine.*;
import flash.text.ime.*;
import flash.ui.*;
import flash.utils.*;
import flash.xml.*;
public dynamic class MainTimeline extends flash.display.MovieClip
public function MainTimeline()
new Vector.<String>(6)[0] = "Productivity";
new Vector.<String>(6)[1] = "Leadership";
new Vector.<String>(6)[2] = "Execution";
new Vector.<String>(6)[3] = "Education";
new Vector.<String>(6)[4] = "Speed of Trust";
new Vector.<String>(6)[5] = "Sales";
super();
addFrameScript(0, this.frame1);
return;
public function init():void
var loc1:*=null;
com.greensock.plugins.TweenPlugin.activate([com.greensock.plugins.AutoAlphaPlugin]);
loc1 = new flash.net.URLLoader(new flash.net.URLRequest(this.XML_LOC));
var loc2:*;
this.next_mc.buttonMode = loc2 = true;
this.prev_mc.buttonMode = loc2 = true;
stage.scaleMode = flash.display.StageScaleMode.NO_SCALE;
stage.align = flash.display.StageAlign.TOP_LEFT;
loc1.addEventListener(flash.events.Event.COMPLETE, this.xmlLoaded, false, 0, true);
this.prev_mc.addEventListener(flash.events.MouseEvent.CLICK, this.minusClick, false, 0, true);
this.next_mc.addEventListener(flash.events.MouseEvent.CLICK, this.plusClick, false, 0, true);
return;
public function xmlLoaded(arg1:flash.events.Event):void
var loc1:*=null;
var loc2:*=0;
this.xmlData = new XML(arg1.target.data);
loc2 = 0;
while (loc2 < this.LABELS.length)
loc1 = new Btn(this.LABELS[loc2], loc2);
this.btnHolder_mc.addChild(loc1);
this.BTNS.push(loc1);
trace(this.LABELS[loc2]);
++loc2;
this.current = uint(this.xmlData.@firstPick);
trace("-----width-----");
trace(this.contentMask.width);
var loc3:*=this.contentMask.width / this.LABELS.length;
trace(loc3);
loc2 = 0;
while (loc2 < this.BTNS.length)
this.BTNS[loc2].width = loc3;
this.BTNS[loc2].x = loc3 * loc2;
++loc2;
this.btnHolder_mc.addEventListener(flash.events.MouseEvent.CLICK, this.numClick, false, 0, true);
this.selectMovie();
return;
public function numClick(arg1:flash.events.MouseEvent):void
this.killTimer();
this.current = arg1.target.i;
this.selectMovie();
return;
public function killTimer():void
this.timerGoing = false;
if (this.timer)
this.timer.reset();
this.timer.addEventListener(flash.events.TimerEvent.TIMER, this.plusClick, false, 0, true);
this.timer = null;
return;
public function selectMovie():void
if (this.timerGoing)
this.timer = new flash.utils.Timer(uint(this.xmlData.ad[com.danehansen.MyMath.modulo(this.current, this.xmlData.ad.length())].@delay), 1);
this.timer.start();
this.timer.addEventListener(flash.events.TimerEvent.TIMER, this.plusClick, false, 0, true);
while (this.holder_mc.numChildren > 0)
this.holder_mc.removeChild(this.holder_mc.getChildAt(0));
var loc1:*=new flash.display.Loader();
loc1.load(new flash.net.URLRequest(this.xmlData.ad[com.danehansen.MyMath.modulo(this.current, this.xmlData.ad.length())].@loc));
this.holder_mc.addChild(loc1);
var loc2:*=0;
while (loc2 < this.BTNS.length)
this.BTNS[loc2].deselect();
++loc2;
this.BTNS[com.danehansen.MyMath.modulo(this.current, this.xmlData.ad.length())].select();
var loc3:*=this.BTNS[com.danehansen.MyMath.modulo(this.current, this.xmlData.ad.length())].x + this.BTNS[com.danehansen.MyMath.modulo(this.current, this.xmlData.ad.length())].width / 2 + this.btnHolder_mc.x;
trace("addLength:" + this.xmlData.ad.length());
trace(loc3, com.danehansen.MyMath.modulo(this.current, this.xmlData.ad.length()));
com.greensock.TweenLite.to(this.indicator_mc, 0.3, {"x":loc3, "ease":com.greensock.easing.Cubic.easeOut});
loc1.contentLoaderInfo.addEventListener(flash.events.Event.COMPLETE, this.adLoaded, false, 0, true);
return;
public function adLoaded(arg1:flash.events.Event):void
var evt:flash.events.Event;
var loc1:*;
evt = arg1;
try
evt.target.content.xmlData = this.xmlData.ad[com.danehansen.MyMath.modulo(this.current, this.xmlData.ad.length())];
catch (er:Error)
return;
public function minusClick(arg1:flash.events.MouseEvent):void
this.killTimer();
var loc1:*;
var loc2:*=((loc1 = this).current - 1);
loc1.current = loc2;
this.selectMovie();
return;
public function plusClick(arg1:flash.events.Event):void
if (arg1.type != "timer")
this.killTimer();
var loc1:*;
var loc2:*=((loc1 = this).current + 1);
loc1.current = loc2;
this.selectMovie();
trace("next");
return;
public function ENDED(arg1:flash.events.Event):void
if (arg1.type != "timer")
this.killTimer();
var loc1:*;
var loc2:*=((loc1 = this).current + 1);
loc1.current = loc2;
this.selectMovie();
trace("next");
return;
public function STARTED(arg1:flash.events.Event):void
this.killTimer();
return;
function frame1():*
this.timerGoing = true;
addEventListener("endNow", this.ENDED, false, 0, true);
addEventListener("startNow", this.STARTED, false, 0, true);
this.init();
return;
public const XML_LOC:String=stage.loaderInfo.parameters.xmlLoc ? stage.loaderInfo.parameters.xmlLoc : "home_ads.xml";
public const LABELS:__AS3__.vec.Vector.<String>=new Vector.<String>(6);
public const BTNS:__AS3__.vec.Vector.<Btn>=new Vector.<Btn>();
public const TRANSITION_TIME:Number=0.2;
public var contentMask:flash.display.MovieClip;
public var btnHolder_mc:flash.display.MovieClip;
public var holder_mc:flash.display.MovieClip;
public var indicator_mc:flash.display.MovieClip;
public var prev_mc:flash.display.MovieClip;
public var next_mc:flash.display.MovieClip;
public var current:int;
public var xmlData:XML;
public var timer:flash.utils.Timer;
public var timerGoing:Boolean; -
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. -
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 ????
-
I am getting a runtime error when I click a button that fires
the addPerson function.
TypeError: Error #1009: Cannot access a property or method of
a null object reference.
at main/addPerson()[C:\Documents and Settings\edunn\My
Documents\Flex Builder 3\workspace2\Test-1\src\main.mxml:178]
at main/___main_Button4_click()[C:\Documents and
Settings\edunn\My Documents\Flex Builder
3\workspace2\Test-1\src\main.mxml:228]
I am new to Action Script - and object programming - so
understand...
I do not understand what I have done wrong here...
I have a result list coming from an external web service that
populates in a datagrid. I'd like to be able to update that
datagrid and then push back to the web service the new array.
Any ideas?????
import mx.rpc.events.ResultEvent;
import mx.rpc.events.FaultEvent;
import mx.collections.ArrayCollection;
import generated.webservices.FxAppiaUserFeaturesService;
import generated.webservices.UserSimRingConfig;
import generated.webservices.SimRingType;
public var plist:ArrayCollection
//Updated Function to populate the data from WS
public function
retrieveUserSimRingConfig(e:ResultEvent):void {
var UsrSimRngCfgNumList:Array = new
UserSimRingConfig().simRingNumberList;
var plist:ArrayCollection = e.result.simRingNumberList;
dgSimPhoneList.dataProvider = plist;
if (e.result.active) {
chboxSimultaneousRingPhones.selected=true;
} else {
chboxSimultaneousRingPhones.selected=false;
if (e.result.simRingType == "NO_RING_WHILE_ONCALL") {
chboxSimultaneousRing.selected=true;
} else {
chboxSimultaneousRing.selected = false;
// Add a person to the ArrayCollection.
public function addPerson():void {
plist.addItem({simRingNumberList:txtPhoneNumber1.text});
I posted this in the General Section first by
mistake...can u explain abt this line
var plist:ArrayCollection = e .
result.simRingNumberList; -
Is there a known bug when displaying a chart component that is defined in a module. When attempting to display a chart component defined in a module it crashes indicating Error #1009: Cannot access a property or method of a null object reference.
It crashes at the following location in ChartBase.as. Somehow when loading the chart the styleManager.getStyleDeclaration("mx.charts.chartClasses.ChartBase"); returns null so when using the setStyle methods the exception occurs.
private function initStyles():Boolean
HaloDefaults.init(styleManager);
var chartBaseStyle:CSSStyleDeclaration = styleManager.getStyleDeclaration("mx.charts.chartClasses.ChartBase");
chartBaseStyle.setStyle("chartSeriesStyles", HaloDefaults.chartBaseChartSeriesStyles);
chartBaseStyle.setStyle("fill", new SolidColor(0xFFFFFF, 0));
chartBaseStyle.setStyle("calloutStroke", new SolidColorStroke(0x888888,2));
return true;
Added note: There is a chart component in the application that works fine. The only way I can get the chart in the module to display is to add the following workaround preinitializer but it severly impacts the loading of the module. Is there a way around this.
protected function preinitializeHandler(event:FlexEvent):void
var styleObjects:Array = FlexGlobals.topLevelApplication.styleManager.selectors;
for each(var styleObj:String in styleObjects) {
var style:CSSStyleDeclaration = FlexGlobals.topLevelApplication.styleManager.getStyleDeclaration(styleObj);
styleManager.setStyleDeclaration(styleObj, style, true);
TypeError: Error #1009: Cannot access a property or method of a null object reference.
at mx.charts.chartClasses::ChartBase/initStyles()[E:\dev\4.y\frameworks\projects\charts\src\ mx\charts\chartClasses\ChartBase.as:1862]
at mx.charts.chartClasses::ChartBase/set moduleFactory()[E:\dev\4.y\frameworks\projects\charts\src\mx\charts\chartClasses\ChartBas e.as:1894]
at mx.charts.chartClasses::PolarChart/set moduleFactory()[E:\dev\4.y\frameworks\projects\charts\src\mx\charts\chartClasses\PolarCha rt.as:223]
at mx.charts::PieChart/set moduleFactory()[E:\dev\4.y\frameworks\projects\charts\src\mx\charts\PieChart.as:203]
at spark.components::Group/http://www.adobe.com/2006/flex/mx/internal::elementAdded()[E:\dev\4.y\frameworks\projects\spark\src\spark\components\Group.as:1590]
at spark.components::Group/addElementAt()[E:\dev\4.y\frameworks\projects\spark\src\spark\com ponents\Group.as:1387]
at spark.components::SkinnableContainer/addElementAt()[E:\dev\4.y\frameworks\projects\spark\ src\spark\components\SkinnableContainer.as:775]
at mx.states::AddItems/addItemsToContentHolder()[E:\dev\4.y\frameworks\projects\framework\sr c\mx\states\AddItems.as:782]
at mx.states::AddItems/apply()[E:\dev\4.y\frameworks\projects\framework\src\mx\states\AddIte ms.as:563]
at mx.core::UIComponent/applyState()[E:\dev\4.y\frameworks\projects\framework\src\mx\core\UI Component.as:10741]
at mx.core::UIComponent/commitCurrentState()[E:\dev\4.y\frameworks\projects\framework\src\mx \core\UIComponent.as:10487]
at mx.core::UIComponent/setCurrentState()[E:\dev\4.y\frameworks\projects\framework\src\mx\co re\UIComponent.as:10323]
at mx.core::UIComponent/set currentState()[E:\dev\4.y\frameworks\projects\framework\src\mx\core\UIComponent.as:6425]
at BloodPressure/bloodpressureDg_selectionChangeHandler()[C:\Users\Mark\Adobe Flash Builder 4.7\BiometricsFlexProject\src\BloodPressure.mxml:311]
at BloodPressure/__bloodpressureDg_selectionChange()[C:\Users\Mark\Adobe Flash Builder 4.7\BiometricsFlexProject\src\BloodPressure.mxml:41]
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at mx.core::UIComponent/dispatchEvent()[E:\dev\4.y\frameworks\projects\framework\src\mx\core \UIComponent.as:13152]
at spark.components::DataGrid/commitInteractiveSelection()[E:\dev\4.y\frameworks\projects\sp ark\src\spark\components\DataGrid.as:3634]
at spark.components::DataGrid/setSelectionAnchorCaret()[E:\dev\4.y\frameworks\projects\spark \src\spark\components\DataGrid.as:4210]
at spark.components::DataGrid/grid_mouseDownHandler()[E:\dev\4.y\frameworks\projects\spark\s rc\spark\components\DataGrid.as:4679]
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at mx.core::UIComponent/dispatchEvent()[E:\dev\4.y\frameworks\projects\framework\src\mx\core \UIComponent.as:13152]
at spark.components::Grid/dispatchGridEvent()[E:\dev\4.y\frameworks\projects\spark\src\spark \components\Grid.as:4038]
at spark.components::Grid/grid_mouseDownDragUpHandler()[E:\dev\4.y\frameworks\projects\spark \src\spark\components\Grid.as:3883]
at Function/<anonymous>()[E:\dev\4.y\frameworks\projects\spark\src\spark\utils\MouseEventUti l.as:84]
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at mx.managers::SystemManager/mouseEventHandler()[E:\dev\4.y\frameworks\projects\framework\s rc\mx\managers\SystemManager.as:2918]It appears as though this error has been going on for a while. See the following link http://forums.adobe.com/thread/941849
-
I'am the just start learning actionscript 3, follow is my code, when i lauch the code, it still report the error in frame 36 but did not locate the error in which line. please help me debug them.... TypeError: Error #1009: Cannot access a property or method of a null object reference.
stop();
fm_button.visible = false;
import caurina.transitions.*;
var menu_label_North:Array = new Array("Animals Collection",
"Flowers Collection",
"Leaves Collection",
"Mixed Collection",
"Extra Collection",
"Special Awards",
"Company Background",
"Contact Information");
var total_north:Number = menu_label_North.length;
var i_north:Number = 0;
var page_north:Number;
var main_menu_North:MovieClip = new MovieClip();
stage.addChild(main_menu_North);
for (i_north = 0; i_north < total_north; i_north++)
var btn_north = new flashmo_button();
btn_north.name = "btn" + i_north;
btn_north.x = fm_button.x + i_north * ( fm_button.width + 12 );
btn_north.y = fm_button.y;
btn_north.buttonMode = true;
btn_north.item_no = i_north;
btn_north.flashmo_click_area.addEventListener( Event.ENTER_FRAME, btn_enter_north );
var each_substring_north:Array = menu_label_North[i_north].split("|");
btn_north.flashmo_button_label.fm_label.text = each_substring[0];
btn_north.item_url = each_substring[1];
main_menu_North.addChild(btn_north);
function btn_over_north(e:MouseEvent):void
e.target.parent.over = true;
function btn_out_north(e:MouseEvent):void
e.target.parent.over = false;
function btn_click_north(e:MouseEvent):void
var mc= e.target.parent;
if ( mc.item_url != undefined )
navigateToURL( new URLRequest( mc.item_url ), "_parent" );
else
change_page_north(mc.item_no);
function btn_enter_north(e:Event):void
var mc_north = e.target.parent;
if ( mc_north.over == true )
mc_north.nextFrame();
else
mc_north.prevFrame();
function change_page_north(no:Number):void
for (var i:Number = 0; i < main_menu_North.numChildren; i++)
var mc = MovieClip( main_menu_North.getChildAt(i) );
mc.over = false;
mc.flashmo_click_area.visible = true;
mc.flashmo_click_area.addEventListener( MouseEvent.ROLL_OVER, btn_over_north );
mc.flashmo_click_area.addEventListener( MouseEvent.ROLL_OUT, btn_out_north );
mc.flashmo_click_area.addEventListener( MouseEvent.CLICK, btn_click_north );
var mc_selected = MovieClip( main_menu_North.getChildAt(no) );
mc_selected.over = true;
mc_selected.flashmo_click_area.visible = false;
mc_selected.flashmo_click_area.removeEventListener( MouseEvent.ROLL_OVER, btn_over_north );
mc_selected.flashmo_click_area.removeEventListener( MouseEvent.ROLL_OUT, btn_out_north );
mc_selected.flashmo_click_area.removeEventListener( MouseEvent.CLICK, btn_click_north );
page_north = no + 1;
play();
change_page_north(0);// default page on load
flashmo_credit.addEventListener( MouseEvent.CLICK, goto_fm_north );
function goto_fm_north(e:MouseEvent):void
navigateToURL( new URLRequest( "http://www.flashmo.com" ), "_parent" );
music_credit.addEventListener( MouseEvent.CLICK, goto_music_north );
function goto_music_north(e:MouseEvent):void
navigateToURL( new URLRequest(
"http://www.premiumbeat.com/royalty_free_music/byPiece.php?id=2614" ),
"_blank" );click file>publish settings>swf and tick "permit debugging". retest.
the line number of the code that contains that non-existant object you're trying to reference will be in the error message. indicate that line of code if you're not sure which object that is. -
Hi, I’m doing a game for an assignment for college. Using Flash CS 5. I got this error
TypeError: Error #1009: Cannot access a property or method of a null object reference.
at code::Game1()
When I tried to go to the next page, I thought I linked correctly. Can anyone help me? Thanks
you can find the coding here http://pastebin.com/iz8a6w6Zclick file>publish settings>swf and tick "permit debugging". retest.
the problematic line number will be in the error message. that will tell you which reference you're trying to use that is null. -
hello,
I am trying to load a menu as an external file .... and getting this : TypeError: Error #1009: Cannot access a property or method of a null object reference.
at com::menu()
here is my code:
if(!menuLoader){
var menuRequest:URLRequest = new URLRequest("menu.swf");
var menuLoader:Loader = new Loader();
menuLoader.load(menuRequest);
container.addChild(menuLoader);
menuLoader.x = 700;
menuLoader.y = 50;
can anyone give me a helping hand?
thanks in advance.use:
here is my code:
if(menuLoader!=null){
var menuRequest:URLRequest = new URLRequest("menu.swf");
var menuLoader:Loader = new Loader();
menuLoader.load(menuRequest);
container.addChild(menuLoader);
menuLoader.x = 700;
menuLoader.y = 50; -
Error #1009: Cannot access a property or method of a null object reference.
Well I'm stumped. I have researched the issue for 5 hours now
and can't seem to come any closer to understand what the issue is.
I receive an error occurs while the program is adding elements to
an Object. After 10 elements are added it goes into the error state
and the program will not proceed. I do have proceeding warnings:
"warning: unable to bind to property 'xxx' on class 'Object' (class
is not an IEventDispatcher)" but if I comment out element 11-24,
the program executes to completion with only the warnings, so I
don't see the warnings as a show stopper. Also, the error is thrown
despite which data element is the 11th. Essentially, the function
is an executed result of a button click that is to take all the
current text elements in the web form, assign them to an object and
then send the data object to a web service to update the database.
Any ideas are greatly appreciated.
<code>
private function DataUpdate():void {
LastCmd = "DataUpdate";
var outDataSet:Object = new Object;
outDataSet.userEmail = this.email.text;
outDataSet.userAddr1 = this.AddrOne.text;
outDataSet.userAddr2 = this.AddrTwo.text;
outDataSet.userCity = this.AddrCity.text;
outDataSet.userState = this.AddrState.text;
outDataSet.userZip = this.AddrZip.text;
outDataSet.userOfficePhone = this.OfficePhone.text;
outDataSet.userHomePhone = this.HomePhone.text;
outDataSet.userCellPhone = this.CellPhone.text;
outDataSet.userFax = this.Fax.text;
outDataSet.agencyName = this.AgencyName.text;
// outDataSet.agencyAddr1 = AgencyAddrOne.text;
/* outDataSet.agencyAddr2 = AgencyAddrTwo.text;
outDataSet.agencyCity = AgencyCity.text;
outDataSet.agencyState = AgencyState.text;
outDataSet.agencyZip = AgencyZip.text;
outDataSet.agencyOfficePhone = AgencyPhone.text;
outDataSet.agencyFax = AgencyFax.text;
outDataSet.agencyWeb = AgencyWeb.text;
outDataSet.billAgent = BillAgent.selected;
outDataSet.billAcency = BillAgency.selected;
outDataSet.fwdOfficePhone = FwdOffice.selected;
outDataSet.fwdCellPhone = FwdCell.selected;
outDataSet.fwdHomePhone = FwdHome.selected;
outDataSet.fwdAgentEmail = FwdEmail.selected;
var data:Object = new Object;
data.database = "auth";
//data.query = query;
data.DSet = outDataSet;
data.table = "user_detail";
data.where = "username = '"+Auth.LoggedInUser+"'";
var RequestArray:Object = new Object;
RequestArray.cmd = "updateDB";
RequestArray.data = data;
PTservice.getOperation("doorway").send(RequestArray);well, you're getting a null exception. and since it's obvious
that outDataSet is not null, it must be the other object you're
referring to. i'd double check the spelling of your component's id
and make sure it is in fact "AgencyAddrOne" - maybe you missed the
'r'?
if AgencyAddrOne is in an included component (a separate
mxml/as file), it might be out of scope, such that you would have
to do MyAddressComponentId.AgencyAddrOne
also, unrelated, if you're building a sql update statement on
the server side, be careful of sql injection.
./paul -
MY code
stage.addEventListener(MouseEvent.MOUSE_MOVE,rotating);
function rotating(event:MouseEvent):void{
album.rotationX=mouseY-50;
album.rotationY=mouseX-50;
if(album.rotationX>260){
album.rotationX=259;
if(album.rotationY>445){
album.rotationY=444;
if(album.rotationX<105){
album.rotationX=106;
if(album.rotationY<285){
album.rotationY=284;
trace("rotation X " + album.rotationX);
trace("mouse Y " + (mouseY+50));
trace("rotation Y " + album.rotationY);
trace("mouse X " + (mouseX+50));
stage.addEventListener(MouseEvent.CLICK,changing);
function changing(event:MouseEvent):void{
album.nextFrame();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 declared but not instantiated
- 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. -
help me pls
flip_letters1.addEventListener(MouseEvent.MOUSE_OVER,rollOverLetters);
function rollOverLetters(event:MouseEvent):void
letters_flip. gotoAndPlay("begin");
flip_letters1.addEventListener(MouseEvent.MOUSE_OUT,rollOutLetters);
function rollOutLetters(event:MouseEvent):void
letters_flip. gotoAndPlay("end");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 declared but not instantiated
- 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. -
I used both timeline and code on this project, but when I play the movie, this error keeps on showing up. Does anyone know how to get rid of this?
Also, I have problems synching the music, how to I sync it so it matches the movie?
Thanks!!!
Here is my code
import com.greensock.TweenMax;
import com.greensock.easing.*;
fscommand("fullscreen","true");
var s:Sound = new Sound(new URLRequest("faye.mp3"));
s.play(0, 1000);
var ba:ByteArray = new ByteArray();
addEventListener(Event.ENTER_FRAME, loop);
function loop(e:Event):void
SoundMixer.computeSpectrum(ba, true);
var num:Number = ba.readFloat()*900;
addEventListener(Event.ENTER_FRAME, loop);
head_mc. scaleX = sc.leftPeak*1000
monster_mc. scaleY= sc.rightPeak*400;
if (num < 100) {
monster_mc.alpha=100;
TweenMax.to(monster_mc, 2, {scaleX:num/100, scaleY:num/100, autoAlpha:0, ease:Elastic.easeOut});
TweenMax.to(head_mc, 1, {y:"-3", autoAlpha:50, ease:Elastic.easeOut});
} else if (num >500) {
head_mc.scaleX = num/1200;
monster_mc.scaleY = num/1200;
//doll_mc.y = Math.random()*num;
//TweenMax.to(doll_mc, .5, {y:"40", yoyo:true, autoAlpha:0, ease:Elastic.easeOut});
//TweenMax.to(cloud, 1 [{time:1, delay:.1}, {time:0.8, autoAlpha:0}]);
//TweenMax.to(clip_mc, 5, {alpha:0.5, x:120, ease:Back.easeOut, delay:2, onComplete:onFinishTween, onCompleteParams:[5, clip_mc]});
mush_btn.addEventListener(MouseEvent.MOUSE_DOWN,mush);
function mush(evt:MouseEvent):void {
group_mc.scaleX+=.1000;
group_mc.scaleY+=.500;
//mush_btn.addEventListener(MouseEvent.MOUSE_UP,dropsFull);
//function dropsFull(evt:MouseEvent):void {
// group_mc.gotoAndStop(2);
trace(num);
//Full screen
stage.displayState=StageDisplayState.FULL_SCREEN;
// Hide the Mouse
import flash.ui.Mouse;
Mouse.hide();
// Load sound
var tune:Sound = new Sound(new URLRequest("faye.mp3"));
var sc:SoundChannel = tune.play();
// Enter frame event call
stage.addEventListener(Event.ENTER_FRAME, onEnter);
function onEnter(evt:Event) {
var elapsedNum:Number = sc.position/1000;
// Calculate sound position every frame
// Variable for LeftPeak
var left:Number = sc.leftPeak*20;
// Variable for RightPeak
var right:Number = sc.rightPeak*20;
// Main logic for animation based on song position
if (elapsedNum >=1) {
// var transform1:SoundTransform = new SoundTransform(0.1, 0);
//star_mc.soundTransform = transform1;
star_mc.x = Math.random() * 1000;
star1_mc.y = Math.random() * 400;
star2_mc.x = Math.random() * 1000;
star3_mc.y = Math.random() * 1000;
star4_mc.y = Math.random() * 600;
star5_mc.y = Math.random() * 1000;
star6_mc.y = Math.random() * 1000;
star7_mc.y = Math.random() * 1000;
star8_mc.y = Math.random() * 1000;
star9_mc.y = Math.random() * 1000;
star10_mc.y = Math.random() * 800;
star11_mc.y = Math.random() * 1000;
star12_mc.y = Math.random() * 1000;
star13_mc.y = Math.random() * 1000;
star14_mc.y = Math.random() * 1000;
star18_mc.y = Math.random() * 500;
} else if (elapsedNum >=16 && elapsedNum <31) {
star11_mc.scaleX = left*2;
star5_mc.x = 500;
star6_mc.y = 400;
star7_mc.x = 500;
star8_mc.y = 400;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 different names assigned.
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. -
Hello
I'm trying to load a swf called "polaroids.swf" into my main swf called "09replacesSWF.swf". I keep getting the error when I test the movie. I'm completely lost and have been at this for hours. If I just test polaroids.fla the movie works fine but if I try to load it into 09replacesSWF.swf, I get the error. I need some help PLEASE!!!!!
I tried to debug the movie and flash says......."Cannot display source code at this location".
....... TypeError: Error #1009: Cannot access a property or method of a null object reference.
at Polaroids$iinit()
Here is my AS code
package {
import flash.display.*;
import flash.filters.*;
import flash.utils.*;
import flash.net.*;
import flash.events.*;
import flash.filters.DropShadowFilter;
import caurina.transitions.*;
public class Polaroids extends MovieClip {
//Variables
public var stageContainer:MovieClip;
private var _scaleTempo:Number;
private var _thumbStr:Number;
private var _stageHeight:Number;
private var _stageWidth:Number;
private var _count:Number;
private var _initBGHeight:Number;
private var _initBGWidth:Number;
//Arrays
private var _backgroundImageArr:Array;
private var _imageURLArr:Array;
private var _imageCaptionArr:Array;
private var _imagesArr:Array;
//Bitmaps
private var _image:Bitmap;
private var _backgroundImage:Bitmap;
private var _bitmap:BitmapData;
private var _backgroundBitmap:BitmapData;
//XML
private var _xmlLoader:URLLoader;
private var _imageXML:XML;
//Holders
private var _imageContainer:ImageContainer;
private var _backgroundImageHolder:MovieClip;
//Image States
private var _activeImage = null;
private var _previousActiveImage = null;
//Loaders
private var backgroundImageLoader:Loader;
public function Polaroids() {
//sets up initial variable values
_count = 0;
_backgroundImageArr=new Array;
_imageURLArr=new Array;
_imageCaptionArr=new Array;
_imagesArr=new Array;
_scaleTempo=9;
_thumbStr = .3;
backgroundImageLoader = new Loader();
_stageHeight=stage.stageHeight;
_stageWidth=stage.stageWidth;
_backgroundImageHolder = new MovieClip();
stageContainer = new MovieClip();
addChild(stageContainer);
init();
//Add Stage Listener
private function addedToStage(e:Event):void {
stage.addEventListener(Event.RESIZE, onResize);
Initialise
private function init():void {
//Setup stage
stage.align = StageAlign.TOP_LEFT;
stage.scaleMode = StageScaleMode.NO_SCALE;
//Load XML
var _xmlLoader:URLLoader=new URLLoader;
_xmlLoader.load(new URLRequest("photos.xml"));
_xmlLoader.addEventListener(Event.COMPLETE,processXML);
this.addEventListener(Event.ADDED_TO_STAGE, addedToStage);
Process XML
private function processXML(e:Event):void {
_imageXML=new XML(e.target.data);
_backgroundImageArr[0] = _imageXML.@backgroundImage;
for (var i:int=0; i < _imageXML.*.length(); i++) {
_imageURLArr[i]=_imageXML.image[i].@url;
_imageCaptionArr[i]=_imageXML.image[i].@caption;
loadImages();
loadBackgroundImage();
Load Background Image
private function loadBackgroundImage():void {
backgroundImageLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,addBack ground);
backgroundImageLoader.load(new URLRequest(_backgroundImageArr[0]));
Add background image to stage
private function addBackground(e:Event):void {
_backgroundImage=Bitmap(e.target.content);
_backgroundBitmap=_image.bitmapData;
_backgroundImage.smoothing = true;
_backgroundImageHolder.addChild(_backgroundImage);
_initBGHeight = backgroundImageLoader.contentLoaderInfo.height;
_initBGWidth = backgroundImageLoader.contentLoaderInfo.width;
if ((_initBGWidth/_initBGHeight) > (stage.stageWidth/stage.stageHeight)) {
_backgroundImageHolder.height = stage.stageHeight;
_backgroundImageHolder.width = _backgroundImageHolder.height * _initBGWidth / _initBGHeight;
} else {
_backgroundImageHolder.width = stage.stageWidth;
_backgroundImageHolder.height= _backgroundImageHolder.width * _initBGHeight / _initBGWidth;
Load Images
private function loadImages():void {
for (var i:int=0; i < _imageURLArr.length; i++) {
var imageLoader:Loader=new Loader;
imageLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,addImage);
imageLoader.load(new URLRequest(_imageURLArr[i]));
Add images to MovieClip on Stage
private function addImage(e:Event):void {
_image=Bitmap(e.target.content);
_bitmap=_image.bitmapData;
_image.smoothing = true;
_imageContainer = new ImageContainer();
_imageContainer.falseBtn.buttonMode = true;
_imageContainer.falseBtn.doubleClickEnabled = true;
_imageContainer.imageHolder.addChild(_image);//Add Bitmap to a MoviClip _imageContainer
_image.x = _imageContainer.width/2 - (_image.width/2 + 15);
_image.y = _imageContainer.height/2 - (_image.height/2 + 80) ;
_imageContainer.imageCaption.text = _imageCaptionArr[_count];
_imageContainer.scaleX = _thumbStr;
_imageContainer.scaleY = _thumbStr;
_imageContainer.rotation = 30 - 60 * Math.random();
if (Math.round(Math.random() * 1) == 1) {
_imageContainer.y=stage.stageHeight * Math.random() + _imageContainer.height * 2;
if (Math.round(Math.random() * 1) == 1) {
_imageContainer.x=stage.stageWidth + _imageContainer.width * 2;
} else {
_imageContainer.x=- _imageContainer.width * 2;
} else {
_imageContainer.x=stage.stageWidth * Math.random() + _imageContainer.width * 2;
if (Math.round(Math.random() * 1) == 1) {
_imageContainer.y=stage.stageHeight + _imageContainer.height * 2;
} else {
_imageContainer.y=- _imageContainer.height * 2;
//Setup Attributes
_imageContainer.newX = Math.round((_imageContainer.width/2) + (stage.stageWidth-_imageContainer.width)*Math.random());
_imageContainer.newY = Math.round((_imageContainer.height/2) + (stage.stageHeight-_imageContainer.height)*Math.random());
_imageContainer.oldRotation = _imageContainer.rotation;
_imageContainer.oldX = _imageContainer.newX;
_imageContainer.oldY = _imageContainer.newY;
_imageContainer.startX = _imageContainer.x;
_imageContainer.startY = _imageContainer.y;
_imageContainer.oldHeight = _imageContainer.scaleY;
_imageContainer.oldWidth = _imageContainer.scaleX;
_imageContainer.id = _count;
_imageContainer.addEventListener(Event.ENTER_FRAME, animateImage);
_imageContainer.addEventListener(MouseEvent.MOUSE_DOWN,dragImage);
_imageContainer.addEventListener(MouseEvent.MOUSE_UP,dropImage);
_imageContainer.addEventListener(MouseEvent.MOUSE_OUT, dropImage);
_imageContainer.falseBtn.addEventListener(MouseEvent.DOUBLE_CLICK, setup_activeImage);
_imagesArr.push(_imageContainer);//Add image reference to an Array
_imageContainer.filters = [new DropShadowFilter(0,0,0,.9,8,8,1,1,false,false)];
//Button Listeners
_imageContainer.nextBtn.visible = false;
_imageContainer.previousBtn.visible = false;
_imageContainer.nextBtn.buttonMode = true;
_imageContainer.previousBtn.buttonMode = true;
_imageContainer.nextBtn.addEventListener(MouseEvent.MOUSE_DOWN, nextImage);
_imageContainer.previousBtn.addEventListener(MouseEvent.MOUSE_DOWN, previousImage);
//Add Container to Stage
addChild(_imageContainer);
stageContainer.addChild(_imageContainer);
_count++;
Animate Images onto Stage
private function animateImage(e:Event):void {
e.target.y += (e.target.newY - e.target.y) / _scaleTempo;
e.target.x += (e.target.newX - e.target.x) / _scaleTempo;
if (Math.round(e.target.y) == e.target.newY) {
e.target.removeEventListener(Event.ENTER_FRAME, animateImage);
Drag & Drop Images
private function dragImage(e:MouseEvent) {
if (e.currentTarget != _activeImage) {
e.currentTarget.startDrag();
if (_activeImage == null) {
stageContainer.setChildIndex(DisplayObject(e.currentTarget), stageContainer.numChildren-1);
} else {
stageContainer.setChildIndex(DisplayObject(e.currentTarget), stageContainer.numChildren-2);
private function dropImage(e:MouseEvent) {
if (e.currentTarget != _activeImage) {
e.currentTarget.stopDrag();
e.currentTarget.oldX = e.currentTarget.x;
e.currentTarget.oldY = e.currentTarget.y;
onResize Handler
private function onResize(e:Event):void {
for (var i:int = 0; i<_imagesArr.length; i++) {
if (_imagesArr[i] != _activeImage) {
_imagesArr[i].x = Math.round(stage.stageWidth * (_imagesArr[i].x/_stageWidth));
_imagesArr[i].y = Math.round(stage.stageHeight * (_imagesArr[i].y/_stageHeight));
} else {
_activeImage.x = stage.stageWidth/2;
_activeImage.y = stage.stageHeight/2;
_imagesArr[i].oldX = Math.round(stage.stageWidth * (_imagesArr[i].oldX/_stageWidth));
_imagesArr[i].oldY = Math.round(stage.stageHeight * (_imagesArr[i].oldY/_stageHeight));
_imagesArr[i].newX = Math.round(stage.stageWidth * (_imagesArr[i].newX/_stageWidth));
_imagesArr[i].newY = Math.round(stage.stageHeight * (_imagesArr[i].newY/_stageHeight));
_imagesArr[i].startX = Math.round(stage.stageWidth * (_imagesArr[i].startX/_stageWidth));
_imagesArr[i].startY = Math.round(stage.stageHeight * (_imagesArr[i].startY/_stageHeight));
//Background Resizer
if ((_initBGWidth/_initBGHeight) > (stage.stageWidth/stage.stageHeight)) {
_backgroundImageHolder.height = stage.stageHeight;
_backgroundImageHolder.width = _backgroundImageHolder.height * _initBGWidth / _initBGHeight;
} else {
_backgroundImageHolder.width = stage.stageWidth;
_backgroundImageHolder.height= _backgroundImageHolder.width * _initBGHeight / _initBGWidth;
_stageWidth = stage.stageWidth;
_stageHeight = stage.stageHeight;
Handle Selected Image
private function zoomImage():void {
stageContainer.setChildIndex(_activeImage, stageContainer.numChildren-1);
Tweener.addTween(_activeImage,{scaleX: 1, scaleY: 1, rotation: 0, x: _stageWidth/2 , y: _stageHeight/2, time: 1});
_activeImage.nextBtn.visible = true;
_activeImage.previousBtn.visible = true;
private function returnImage():void {
stageContainer.setChildIndex(_previousActiveImage, stageContainer.numChildren-2);
Tweener.addTween(_previousActiveImage,{scaleX: .3, scaleY: .3, rotation: _previousActiveImage.oldRotation, x: _previousActiveImage.oldX , y: _previousActiveImage.oldY, time: 1});
_previousActiveImage.nextBtn.visible = false;
_previousActiveImage.previousBtn.visible = false;
private function setup_activeImage(e:Event):void {
if ((_activeImage == null) && (_previousActiveImage == null)) {
_activeImage = e.currentTarget.parent;
zoomImage();
} else if (e.currentTarget.parent != _activeImage) {
_previousActiveImage = _activeImage;
_activeImage = e.currentTarget.parent;
zoomImage();
returnImage();
} else {
Tweener.addTween(_activeImage,{scaleX: .3, scaleY: .3, rotation: _activeImage.oldRotation, x: _activeImage.oldX , y: _activeImage.oldY, time: 1});
_activeImage.nextBtn.visible = false;
_activeImage.previousBtn.visible = false;
_activeImage = null;
_previousActiveImage = null;
Button Handlers
private function nextImage(e:MouseEvent):void {
var imageID = int(e.currentTarget.parent.id);
if (imageID < _imagesArr.length - 1) {
_previousActiveImage = e.currentTarget.parent;
_activeImage = _imagesArr[imageID+1];
zoomImage();
returnImage();
} else {
_previousActiveImage = e.currentTarget.parent;
_activeImage = _imagesArr[0];
zoomImage();
returnImage();
private function previousImage(e:MouseEvent):void {
var imageID = int(e.currentTarget.parent.id);
if (imageID != 0) {
_previousActiveImage = e.currentTarget.parent;
_activeImage = _imagesArr[imageID-1];
zoomImage();
returnImage();
} else {
_previousActiveImage = e.currentTarget.parent;
_activeImage = _imagesArr[_imagesArr.length-1];
zoomImage();
returnImage();
}Raymond,
The error is at line 55....when I debug
TypeError: Error #1009: Cannot access a property or method of a null object reference.
at Polaroids$iinit()[/Volumes/Herman's Passport/Music Rocka/RockaGallery/Polaroids.as:55]
So i'm looking in the code.....
Maybe you are looking for
-
Error while creating setuppackage
Hi All, I am getting the following error while creating a setup package. 0010 tc.mobile.admin.bl Creation of virtual mi instance failed. Please suggest what can be the reason for the same. Also i have certain queries while creating a setup package f
-
Please help me. I had to restore my factory settings cause my phone froze and i went to itunes and that was the only way that i saw to do it. im sure it was wrong way to do it but it is done now. I had backuped my contacts and stuff on my itunes
-
Unable to install OS X Maverick on iMac after download
After downloading OS X Maverick nothing happens upon clicking download. I meet all necessary requirements from what I can tell. Any solutions?
-
Customizing Lightbox gallery in Dreamweaver CS5
Hi, I've downloaded the jQuery LightBox gallery from Dreamweaver Exchange and I'd like to change the color of the overlay when the gallery is "up and running". By default it's black and I've gone through every item on the lightbox.css file but I can'
-
Error while starting tnsnames listener
Hi, We installed oracle 8.0.6 on Windows 2000 machine, while starting the tnsnames listener we are getting the following error, " Could not start the OracleTNSListener80 service on local computer, The service did not report any error, this could be i