Hello!
My problem is pretty wierd…
this is my code:
stop();
import flash.display.*;
import flash.text.*;
import flash.events.*;
import flash.net.*;
import flash.utils.*;
import fl.transitions.*;
import fl.transitions.easing.*;
var present:Number = 0;
var timer:Timer = new Timer(11000);
var box:Sprite = new Sprite();
var firstRun:Boolean = true;
var describe:TextField = new TextField();
var style:TextFormat = new TextFormat();
var titleField:TextField = new TextField();
var titleFormat:TextFormat = new TextFormat();
var MyFont:Font = new TrebuchetMS();
for (var i:int = 0; i<MovieClip(root).sliderImages.length; i++)
{
addChild(MovieClip(root).sliderImages*);
present = i;
}
style.font = MyFont.fontName;
style.size = 12;
style.color = 0xDDDDDD;
describe.autoSize = TextFieldAutoSize.LEFT;
describe.antiAliasType = AntiAliasType.ADVANCED;
describe.embedFonts = true;
describe.selectable = false;
describe.defaultTextFormat = style;
describe.x = 5;
describe.y = 235;
titleFormat.font = MyFont.fontName;
titleFormat.size = 16;
titleFormat.color = 0xFFFFFF;
titleField.autoSize = TextFieldAutoSize.LEFT;
titleField.antiAliasType = AntiAliasType.ADVANCED;
titleField.embedFonts = true;
titleField.selectable = false;
titleField.defaultTextFormat = titleFormat;
titleField.x = 5;
titleField.y = 205;
box.graphics.beginFill(0x000000, 0.65);
box.graphics.drawRect(0, 200, 850, 90);
box.graphics.endFill();
box.alpha = 0;
box.addChild(titleField);
box.addChild(describe);
addChild(box);
box.buttonMode = true;
box.addEventListener (MouseEvent.CLICK, navigate);
titleField.text = MovieClip(root).Xml.Sliders.Item[present].@Title;
describe.text = MovieClip(root).sliderTexts[present];
var tween7:Tween = new Tween(box, 'alpha', Strong.easeInOut, 0, 1, 1, true);
tween7.addEventListener(TweenEvent.MOTION_FINISH, boxFinish);
timer.addEventListener( TimerEvent.TIMER, boxDisapear );
timer.start();
function animate (e:TweenEvent):void
{
box.x = -10000;
if (present == 0)
{
describe.text = MovieClip(root).sliderTexts[MovieClip(root).sliderImages.length - 1];
titleField.text = MovieClip(root).Xml.Sliders.Item[MovieClip(root).sliderImages.length - 1].@Title;
}
else
{
trace(MovieClip(root).Xml.Sliders.Item[present-1]);
describe.text = MovieClip(root).Xml.Sliders.Item[present-1];
titleField.text = MovieClip(root).Xml.Sliders.Item[present-1].@Title;
}
var rnd:Number = Math.ceil(Math.random()*3);
switch (rnd)
{
case 1:
var tween1:Tween = new Tween(MovieClip(root).sliderImages[present], 'x', Elastic.easeInOut, 0, -1000, 2, true);
tween1.addEventListener(TweenEvent.MOTION_FINISH, tweenFinish);
break;
case 2:
var tween2:Tween = new Tween(MovieClip(root).sliderImages[present], 'x', Elastic.easeInOut, 0, 1000, 2, true);
tween2.addEventListener(TweenEvent.MOTION_FINISH, tweenFinish);
break;
case 3:
var tween3:Tween = new Tween(MovieClip(root).sliderImages[present], 'y', Elastic.easeInOut, 0, -1000, 2, true);
tween3.addEventListener(TweenEvent.MOTION_FINISH, tweenFinish);
break;
case 4:
var tween4:Tween = new Tween(MovieClip(root).sliderImages[present], 'y', Elastic.easeInOut, 0, 1000, 2, true);
tween4.addEventListener(TweenEvent.MOTION_FINISH, tweenFinish);
break;
}
}
function tweenFinish (e:TweenEvent):void
{
box.x = 0;
var tween5:Tween = new Tween(box, 'alpha', Strong.easeInOut, 0, 1, 0.5, true);
tween5.addEventListener(TweenEvent.MOTION_FINISH, boxFinish);
setChildIndex(MovieClip(root).sliderImages[present], 0);
MovieClip(root).sliderImages[present].x = 0;
MovieClip(root).sliderImages[present].y = 0;
present--;
if (present == -1) present = MovieClip(root).sliderImages.length - 1;
MovieClip(root).sliderImages[present].addEventListener (MouseEvent.CLICK, navigate);
}
function boxFinish (e:TweenEvent):void
{
}
function boxDisapear (e:TimerEvent):void
{
var tween6:Tween = new Tween(box, 'alpha', Strong.easeInOut, 1, 0, 0.5, true);
tween6.addEventListener(TweenEvent.MOTION_FINISH, animate);
}
function navigate (e:MouseEvent):void
{
navigateToURL( new URLRequest ( MovieClip(root).sliderLinks[present] ), '_self');
}
I have this code in MovieClip called Sliders in library it is creating slideshow
In 2nd frame (root) i have this:
var SlidersMc:Sliders = new Sliders();
addChild(SlidersMc);
makeButtons();
witch is adding to stage mc from lib. In frame 3 (root) i have this:
removeChild(SlidersMc);
Witch removing it from stage (to display other mc)
And the wird think is… When I test movie after preloader (frame 1) it goes to the second (with SliderMc) and all is great working perfectly, but… when I go frame 3 (root)(where it is removed) and go back to the second (all started clean again) i gives me error:
TypeError: Error #1009: Cannot access a property or method of a null object reference.
at Sliders/animate()[Sliders::frame1:83]
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at fl.transitions::Tween/set time()
at fl.transitions::Tween/nextFrame()
at fl.transitions::Tween/onEnterFrame()
at this line:
trace(MovieClip(root).Xml.Sliders.Item[present-1]);
When I comment trace it go to another line.
I’ have discover that is evetywhere where MovieClip(root) is used in animate function only! ;/ is it possible that it makes problem?
What is he’s problem?! It is working at first time and now null obejct ref? WTF? Help me pls!