A Flash Developer Resource Site

Results 1 to 13 of 13

Thread: lost in THIS

  1. #1
    Junior Member
    Join Date
    Nov 2010
    Posts
    18

    lost in THIS

    I can't for the life of me figure out how to make this work. I have this set to animate different logos when the mouse is over them. It works fine as long as you don't go directly from one logo to the next. After a long time of trying to figure this out I'm pretty sure it is this 'this' code that is causing the problem. The problem is I don't know how to fix it. Any suggestions on how to make this work would be much appreciated.

    A link to the site if you need to see what I'm trying to accomplish. Click on the "Harman" tab on the logo.
    The code I am working with:
    Code:
    var _tween:Number = 1;
    var perlinBd:BitmapData = new BitmapData(400,400);
    var perlSet:Array = [15,70,1,200,1,2];    //15,70,1,200,length,depth
    perlinBd.perlinNoise(perlSet[0], perlSet[1], perlSet[2], perlSet[3], false, true);
    var dpf:DisplacementMapFilter = new DisplacementMapFilter(perlinBd, new Point(), BitmapDataChannel.BLUE, BitmapDataChannel.GREEN, 0, 0, "color");
    var logoSet:Number = 0;
    var logoLast:Number = 0;
    var logoName:Array = [page_stoves.harman,page_stoves.heatnglo,page_stoves.jotul,page_stoves.traeger];
    var logoCrdX:Array = [page_stoves.harman.x,page_stoves.heatnglo.x,page_stoves.jotul.x,page_stoves.traeger.x];
    var logoCrdY:Array = [page_stoves.harman.y,page_stoves.heatnglo.y,page_stoves.jotul.y,page_stoves.traeger.y];
    var lockXneg:Array = [logoCrdX[0]-20,logoCrdX[1]-20,logoCrdX[2]-20,logoCrdX[3]-20,];
    var lockXpos:Array = [logoCrdX[0]+20,logoCrdX[1]+20,logoCrdX[2]+20,logoCrdX[3]+20,];
    var lockYneg:Array = [logoCrdY[0]-10,logoCrdY[1]-10,logoCrdY[2]-10,logoCrdY[3]-10,];
    var lockYpos:Array = [logoCrdY[0]+10,logoCrdY[1]+10,logoCrdY[2]+10,logoCrdY[3]+10,];
    var setX:Array = [page_stoves.harman.x,page_stoves.heatnglo.x,page_stoves.jotul.x,page_stoves.traeger.x,];
    var setY:Array = [page_stoves.harman.y,page_stoves.heatnglo.y,page_stoves.jotul.y,page_stoves.traeger.y,];
    var randInt:Number = 0;
    var capTween:Number = 0;
    var distortTimer:Timer =  new Timer(500);
    distortTimer.addEventListener(TimerEvent.TIMER, heatDist);
    function heatDist (evt:TimerEvent):void {
    	logoLast = logoSet;
    	//Randoms
    	randInt = Math.floor(Math.random()*12);
    	if(randInt < 1) {
    		randInt = 1;
    	}
    	perlSet[4] = Math.floor(Math.random()*3);
    	if(perlSet[4] < 1) {
    		perlSet[4] = 1;
    	}
    	trace(randInt,perlSet[4],perlSet[0]);
    	//X Bounds
    	if(logoName[logoSet].x+randInt < lockXneg[logoSet]){
    		setX[logoSet] = setX[logoSet]+randInt;
    	} else {
    		setX[logoSet] = setX[logoSet]-10;
    	}
    	if(logoName[logoSet].x+randInt > lockXpos[logoSet]) {
    		setX[logoSet] = setX[logoSet]-randInt;
    	} else {
    		setX[logoSet] = setX[logoSet]+10;		
    	}
    	//Y Bounds
    	if(logoName[logoSet].y+randInt < lockYneg[logoSet]){
    		setY[logoSet] = setY[logoSet]+randInt;
    	} else {
    		setY[logoSet] = setY[logoSet]-10;
    	}
    	if(logoName[logoSet].y+randInt > lockYpos[logoSet]) {
    		setY[logoSet] = setY[logoSet]-randInt;
    	} else {
    		setY[logoSet] = setY[logoSet]+10;		
    	}
    	//Tweens
    	if(tween <= 1) {
    		TweenLite.to(this, perlSet[4], {tween:perlSet[5], ease:Sine.easeInOut});
    		TweenLite.to(logoName[logoSet], perlSet[4], {alpha:.5, y:setY[logoSet], x:setX[logoSet], ease:Sine.easeInOut});		
    	}
    	if(tween >= perlSet[5]) {
    		TweenLite.to(this, perlSet[4], {tween:1, ease:Sine.easeInOut});
    		TweenLite.to(logoName[logoSet], perlSet[4], {alpha:.5, y:setY[logoSet], x:setX[logoSet], ease:Sine.easeInOut});		
    	}
    }
    
    //Stoves Functions
    page_stoves.addEventListener(MouseEvent.MOUSE_OVER,stovesOver);
    page_stoves.addEventListener(MouseEvent.MOUSE_OUT,stovesOut);
    function stovesOver(evt:MouseEvent):void {
    	if(evt.target.name == "harman") {
    		scrollSwitch = "off";
    		logoSet = 0;
    		TweenLite.to(this, perlSet[4], {tween:perlSet[5], ease:Sine.easeInOut});
    		TweenLite.to(logoName[logoSet], perlSet[4], {alpha:.5, ease:Sine.easeInOut});		
    		distortTimer.start();
    	}
    	if(evt.target.name == "heatnglo") {
    		scrollSwitch = "off";
    		logoSet = 1;
    		TweenLite.to(this, perlSet[4], {tween:perlSet[5], ease:Sine.easeInOut});
    		TweenLite.to(logoName[logoSet], perlSet[4], {alpha:.5, ease:Sine.easeInOut});		
    		distortTimer.start();
    	}
    	if(evt.target.name == "jotul") {
    		scrollSwitch = "off";
    		logoSet = 2;
    		TweenLite.to(this, perlSet[4], {tween:perlSet[5], ease:Sine.easeInOut});
    		TweenLite.to(logoName[logoSet], perlSet[4], {alpha:.5, ease:Sine.easeInOut});		
    		distortTimer.start();
    	}
    	if(evt.target.name == "traeger") {
    		scrollSwitch = "off";
    		logoSet = 3;
    		TweenLite.to(this, perlSet[4], {tween:perlSet[5], ease:Sine.easeInOut});
    		TweenLite.to(logoName[logoSet], perlSet[4], {alpha:.5, ease:Sine.easeInOut});		
    		distortTimer.start();
    	}
    }
    function stovesOut(evt:MouseEvent):void {
    	if(evt.target.name == "harman") {
    		scrollSwitch = "on";
    		distortTimer.stop();
    		TweenLite.to(this, 0.5, {tween:0, ease:Sine.easeInOut});
    		TweenLite.to(logoName[logoLast], 0.5, {alpha:1, x:logoCrdX[logoLast], y:logoCrdY[logoLast], ease:Sine.easeInOut});		
    	}
    	if(evt.target.name == "heatnglo") {
    		scrollSwitch = "on";
    		distortTimer.stop();
    		TweenLite.to(this, 0.5, {tween:0, ease:Sine.easeInOut});
    		TweenLite.to(logoName[logoLast], 0.5, {alpha:1, x:logoCrdX[logoLast], y:logoCrdY[logoLast], ease:Sine.easeInOut});		
    	}
    	if(evt.target.name == "jotul") {
    		scrollSwitch = "on";
    		distortTimer.stop();
    		TweenLite.to(this, 0.5, {tween:0, ease:Sine.easeInOut});
    		TweenLite.to(logoName[2], 0.5, {alpha:1, x:logoCrdX[2], y:logoCrdY[2], ease:Sine.easeInOut});		
    	}
    	if(evt.target.name == "traeger") {
    		scrollSwitch = "on";
    		distortTimer.stop();
    		TweenLite.to(this, 0.5, {tween:0, ease:Sine.easeInOut});
    		TweenLite.to(logoName[3], 0.5, {alpha:1, x:logoCrdX[3], y:logoCrdY[3], ease:Sine.easeInOut});		
    	}
    }
    function stovesLoad(evt:Event):void {
    	page_stoves.visible=true;
    }
    function get tween() : Number
    {
    	return _tween;
    }
    function set tween(tween : Number) : void
    {
    	_tween = tween;
    	dpf.scaleX = 48 * _tween;
    	dpf.scaleY = 48 * _tween;
    	perlSet[0] = 7 * _tween;
    	perlinBd.perlinNoise(perlSet[0], perlSet[1], perlSet[2], perlSet[3], false, true);
    	logoName[logoSet].filters = [dpf];
    	//trace(_tween);
    }
    Thanks in advance for any help you may be able to give.

  2. #2
    ___________________
    Join Date
    May 2004
    Posts
    3,174
    "this" is the thing that defined the function where "this" is called..

    PHP Code:
    package {
      public class 
    Bob {
        public function 
    Bob():void{

        }
        public function 
    someMethod():void{
          
    trace(this);
        }
      }
    }
    // ... elsewhere
    var bob:Bob = new Bob();
    bob.someMethod();  // will trace [object Bob] - meaning the Bob instance declared above 
    if called in the action's panel in an FLA, "this" will refer to the current timeline containing the code.

    you can use event.target or event.currentTarget to refer to the instance that fired an event.

  3. #3
    Junior Member
    Join Date
    Nov 2010
    Posts
    18
    Thanks for replying. I'm not sure I understand. So when I hover over a logo it animates fine and when I leave the logo it goes back to normal fine. But when I hover over a logo and then go directly to another logo the first logo's animation stops dead and the second logo's animation picks up where the first left off. I guess what I'm wondering is if there is some way to better clarify what I want to animate or do I just not understand how something works. Is it possible to get this animation to work without the 'this' code? Sorry if I am confusing.

    Basically I need these 2 codes to work at the same time but the 'this' seems to be conflicting. Is it possible to circumvent this?

    Code:
    TweenLite.to(this, 0.5, {tween:0, ease:Sine.easeInOut});
    
    TweenLite.to(this, perlSet[4], {tween:perlSet[5], ease:Sine.easeInOut});
    I've tried specifying the seperate mc's but that renders it useless. If I could just find something to use instead of 'this' I think I could figure something out. I just don't know enough :P

  4. #4
    ___________________
    Join Date
    May 2004
    Posts
    3,174
    so do you want the thing that fires the mouse event to be the target of the Tween?

  5. #5
    Junior Member
    Join Date
    Nov 2010
    Posts
    18
    I need to tween both the target and the prior target at the same time with different arguments. Seems not to be a problem with regular tween, but the special tween function seems to have a problem with it. I don't know if it's because they're trying to use the same displacementMapFilter or what. I'm a bit out of my depth.

    Code:
    function get tween() : Number
    {
    	return _tween;
    }
    function set tween(tween : Number) : void
    {
    	_tween = tween;
    	dpf.scaleX = 48 * _tween;
    	dpf.scaleY = 48 * _tween;
    	perlSet[0] = 7 * _tween;
    	perlinBd.perlinNoise(perlSet[0], perlSet[1], perlSet[2], perlSet[3], false, true);
    	logoName[logoSet].filters = [dpf];
    	//trace(_tween);
    }

  6. #6
    ___________________
    Join Date
    May 2004
    Posts
    3,174
    hmm... yeah that setup's bad - you're trying to tween this.tween up and down at the same time... it's not really a semantic issue, or a reference issue - this.tween is one thing - you can't set it up and down simulataneously...

    since tween is a property of the existing scope, changing the "this" reference is going to work - i think you're going to need a different approach.

    if you can boil down the project into bite-sized pieces (just what's germane to this specific issue), and upload it for CS3, i'll take a look and see if i can suggest something...

  7. #7
    Junior Member
    Join Date
    Nov 2010
    Posts
    18
    Maybe what I need is separate tween functions for each logo? i.e. tween1, tween2 etc. Would that work? That way each logo would have it's own function but would I need separate displacementMapfilter objects too?

  8. #8
    ___________________
    Join Date
    May 2004
    Posts
    3,174
    it's hard to tell from just looking at what's up there, but that sounds about right - once you've got it working, you might want to try to do parse each instance out into it's own custom class with the tween getter/setter, instead of multiple properties on the single global scope... just in the interest of getting it functioning, i'd parse out everything to start - separate each mutable variable into one for each element... once you've got it functioning visually how you want it, you can then worry about doing it more cleanly.

  9. #9
    Junior Member
    Join Date
    Nov 2010
    Posts
    18
    Well, I've done what you suggested to a degree, but 'this' is still getting in the way. I need something more specific. How do I find out what 'this' is referring to? When I do a trace(this.name); All I get is 'root1' I've tried using 'root1' in 'this' 's place and it doesn't work, but 'root' does. But that still doesn't help me. I need to know what exactly 'this' is so I can refer to it when I need just it and not a general whatever object I'm working with. Thanks again.

  10. #10
    ___________________
    Join Date
    May 2004
    Posts
    3,174
    refer to my comment #2 in this post.

    if the code you're showing is in a class file, "this" refers to the current instance of that class.

    if it's in a document class, "this" refers to the main timeline.

    if it's in the action's panel of an FLA, "this" refers to the main timeline.

    i don't think the problem you're having is so much one of reference, but the fact that you're trying to tween this.tween up and down simultaneously.

    you probably want to pare it down - break out that functionality into a single class, get that working right, then create mutliple instances of that class (one for each button), and assign the specific image and event handlers to the instance.

    this tut might be helpful: http://www.senocular.com/flash/tutor...3withflashcs3/ - it explains the basics of classes, class instances, and has a little bit about "this".

    hth

  11. #11
    Junior Member
    Join Date
    Nov 2010
    Posts
    18
    Thank Moagrius I appreciate your time I'll look into this... pun not intended :P

  12. #12
    ___________________
    Join Date
    May 2004
    Posts
    3,174
    no problem - wish there was a more straightforward answer, but unfortunately i think you're going to have to restructure :/

    gl

  13. #13
    Junior Member
    Join Date
    Nov 2010
    Posts
    18
    I finally got it to do what I want, mostly. I couldn't get the 2 special tweens to fire at the same time so they are firing off one after the other. Still was quite a pain to get it working. I'm not sure I absolutely needed to separate and make special functions for every logo, but I did and it works so I'm leaving it alone. For now. Here's what I ended up with if anyone cares :P

    Code:
    var _tween:Array = [1,1,1,1];
    var tweenName:Array = ["tween01","tween02","tween03","tween04"];//,tween02,tween03,tween04
    var perlinBd01:BitmapData = new BitmapData(500,500);
    var perlinBd02:BitmapData = new BitmapData(500,500);
    var perlinBd03:BitmapData = new BitmapData(500,500);
    var perlinBd04:BitmapData = new BitmapData(500,500);
    var perlSet:Array = [15,70,1,200,1,2];    //15,70,1,200,time,strength
    perlinBd01.perlinNoise(perlSet[0], perlSet[1], perlSet[2], perlSet[3], false, true);
    perlinBd02.perlinNoise(perlSet[0], perlSet[1], perlSet[2], perlSet[3], false, true);
    perlinBd03.perlinNoise(perlSet[0], perlSet[1], perlSet[2], perlSet[3], false, true);
    perlinBd04.perlinNoise(perlSet[0], perlSet[1], perlSet[2], perlSet[3], false, true);
    var dpf01:DisplacementMapFilter = new DisplacementMapFilter(perlinBd01, new Point(), BitmapDataChannel.BLUE, BitmapDataChannel.GREEN, 0, 0, "color");
    var dpf02:DisplacementMapFilter = new DisplacementMapFilter(perlinBd02, new Point(), BitmapDataChannel.BLUE, BitmapDataChannel.GREEN, 0, 0, "color");
    var dpf03:DisplacementMapFilter = new DisplacementMapFilter(perlinBd03, new Point(), BitmapDataChannel.BLUE, BitmapDataChannel.GREEN, 0, 0, "color");
    var dpf04:DisplacementMapFilter = new DisplacementMapFilter(perlinBd04, new Point(), BitmapDataChannel.BLUE, BitmapDataChannel.GREEN, 0, 0, "color");
    var logoSet:Number = new Number();
    var logoNext:Number = new Number();
    var logoName:Array = [page_stoves.harman,page_stoves.heatnglo,page_stoves.jotul,page_stoves.traeger];
    var logoCrdX:Array = [page_stoves.harman.x,page_stoves.heatnglo.x,page_stoves.jotul.x,page_stoves.traeger.x];
    var logoCrdY:Array = [page_stoves.harman.y,page_stoves.heatnglo.y,page_stoves.jotul.y,page_stoves.traeger.y];
    var lockXneg:Array = [logoCrdX[0]-20,logoCrdX[1]-20,logoCrdX[2]-20,logoCrdX[3]-20,];
    var lockXpos:Array = [logoCrdX[0]+20,logoCrdX[1]+20,logoCrdX[2]+20,logoCrdX[3]+20,];
    var lockYneg:Array = [logoCrdY[0]-10,logoCrdY[1]-10,logoCrdY[2]-10,logoCrdY[3]-10,];
    var lockYpos:Array = [logoCrdY[0]+10,logoCrdY[1]+10,logoCrdY[2]+10,logoCrdY[3]+10,];
    var setX:Array = [page_stoves.harman.x,page_stoves.heatnglo.x,page_stoves.jotul.x,page_stoves.traeger.x,];
    var setY:Array = [page_stoves.harman.y,page_stoves.heatnglo.y,page_stoves.jotul.y,page_stoves.traeger.y,];
    var randInt:Number = 0;
    var logoTL:TimelineLite = new TimelineLite();
    var tweenState:Array = [0,0,0]; 
    
    //Heat Distortion Timer
    var distortTimer:Timer =  new Timer(500);
    distortTimer.addEventListener(TimerEvent.TIMER, heatDist);
    function heatDist (evt:TimerEvent):void {
    	//Randoms
    	randInt = Math.floor(Math.random()*6);
    	if(randInt < 1) {
    		randInt = 1;
    	}
    	perlSet[4] = Math.floor(Math.random()*3);
    	if(perlSet[4] < 1) {
    		perlSet[4] = 1; 
    	}
    	//X Bounds
    	if(logoName[logoSet].x+randInt > lockXneg[logoSet] && logoName[logoSet].x+randInt < lockXpos[logoSet]) {
    		setX[logoSet] = setX[logoSet]+randInt;
    	} else if(logoName[logoSet].x+randInt < lockXneg[logoSet]) {
    		setX[logoSet] = setX[logoSet]+10;		
    	} else if(logoName[logoSet].x+randInt > lockXpos[logoSet]) {
    		setX[logoSet] = setX[logoSet]-20;
    	}
    	//Y Bounds
    	if(logoName[logoSet].y+randInt > lockYneg[logoSet] && logoName[logoSet].y+randInt < lockYpos[logoSet]) {
    		setY[logoSet] = setY[logoSet]+randInt;
    	} else if(logoName[logoSet].y+randInt < lockYneg[logoSet]) {
    		setY[logoSet] = setY[logoSet]+5;		
    	} else if(logoName[logoSet].y+randInt > lockYpos[logoSet]) {
    		setY[logoSet] = setY[logoSet]-10;
    	}
    	//Tweens
    		if(tweenName[logoSet] == "tween01") {
    			if(tween01 <= 1) {
    				TweenLite.to(this, perlSet[4], {tween01:perlSet[5], ease:Sine.easeInOut});
    				TweenLite.to(logoName[logoSet], perlSet[4], {alpha:.5, y:setY[logoSet], x:setX[logoSet], ease:Sine.easeInOut});					
    			} else if(tween01 >= perlSet[5]) {
    				TweenLite.to(this, perlSet[4], {tween01:1, ease:Sine.easeInOut});
    				TweenLite.to(logoName[logoSet], perlSet[4], {alpha:.5, y:setY[logoSet], x:setX[logoSet], ease:Sine.easeInOut});		
    			}
    		} else if(tweenName[logoSet] == "tween02") {
    			if(tween02 <= 1) {
    				TweenLite.to(this, perlSet[4], {tween02:perlSet[5], ease:Sine.easeInOut});
    				TweenLite.to(logoName[logoSet], perlSet[4], {alpha:.5, y:setY[logoSet], x:setX[logoSet], ease:Sine.easeInOut});					
    			} else if(tween02 >= perlSet[5]) {
    				TweenLite.to(this, perlSet[4], {tween02:1, ease:Sine.easeInOut});
    				TweenLite.to(logoName[logoSet], perlSet[4], {alpha:.5, y:setY[logoSet], x:setX[logoSet], ease:Sine.easeInOut});		
    			}
    		} else if(tweenName[logoSet] == "tween03") {
    			if(tween03 <= 1) {
    				TweenLite.to(this, perlSet[4], {tween03:perlSet[5], ease:Sine.easeInOut});
    				TweenLite.to(logoName[logoSet], perlSet[4], {alpha:.5, y:setY[logoSet], x:setX[logoSet], ease:Sine.easeInOut});					
    			} else if(tween03 >= perlSet[5]) {
    				TweenLite.to(this, perlSet[4], {tween03:1, ease:Sine.easeInOut});
    				TweenLite.to(logoName[logoSet], perlSet[4], {alpha:.5, y:setY[logoSet], x:setX[logoSet], ease:Sine.easeInOut});		
    			}
    		} else if(tweenName[logoSet] == "tween04") {
    			if(tween04 <= 1) {
    				TweenLite.to(this, perlSet[4], {tween04:perlSet[5], ease:Sine.easeInOut});
    				TweenLite.to(logoName[logoSet], perlSet[4], {alpha:.5, y:setY[logoSet], x:setX[logoSet], ease:Sine.easeInOut});					
    			} else if(tween04 >= perlSet[5]) {
    				TweenLite.to(this, perlSet[4], {tween04:1, ease:Sine.easeInOut});
    				TweenLite.to(logoName[logoSet], perlSet[4], {alpha:.5, y:setY[logoSet], x:setX[logoSet], ease:Sine.easeInOut});		
    			}
    		}
    }
    
    //Stoves Functions
    page_stoves.addEventListener(MouseEvent.MOUSE_OVER,stovesOver);
    page_stoves.addEventListener(MouseEvent.MOUSE_OUT,stovesOut);
    function stovesOver(evt:MouseEvent):void {
    	if(evt.target.name == "harman") {
    		scrollSwitch = "off";
    		if(tweenState[0] == 0) {
    			logoSet = 0;
    			tweenState[0] = 1;
    			tweenState[1] = 1;
    			logoTL.clear();
    			logoTL.appendMultiple([new TweenLite(this, 0.5, {tween01:perlSet[5], ease:Sine.easeInOut}),
    			new TweenLite(page_stoves.harman, 0.5, {alpha:.5, ease:Sine.easeInOut, onComplete:logoTLcon})]);		
    			logoTL.gotoAndPlay(0);
    			distortTimer.start();
    		} else if(tweenState[0] == 1) {
    			logoNext = 0;
    			tweenState[0] = 2; 
    			tweenState[2] = 1;
    		}
    	}
    	if(evt.target.name == "heatnglo") {
    		scrollSwitch = "off";
    		if(tweenState[0] == 0) {
    			logoSet = 1;
    			tweenState[0] = 1;
    			tweenState[1] = 1;
    			logoTL.clear();
    			logoTL.appendMultiple([new TweenLite(this, 0.5, {tween02:perlSet[5], ease:Sine.easeInOut}),
    			new TweenLite(page_stoves.heatnglo, 0.5, {alpha:.5, ease:Sine.easeInOut, onComplete:logoTLcon})]);		
    			logoTL.gotoAndPlay(0);
    			distortTimer.start();
    		} else if(tweenState[0] == 1) {
    			logoNext = 1;
    			tweenState[0] = 2; 
    			tweenState[2] = 1;
    		}
    	}
    	if(evt.target.name == "jotul") {
    		scrollSwitch = "off";
    		if(tweenState[0] == 0) {
    			logoSet = 2;
    			tweenState[0] = 1;
    			tweenState[1] = 1;
    			logoTL.clear();
    			logoTL.appendMultiple([new TweenLite(this, 0.5, {tween03:perlSet[5], ease:Sine.easeInOut}),
    			new TweenLite(page_stoves.jotul, 0.5, {alpha:.5, ease:Sine.easeInOut, onComplete:logoTLcon})]);		
    			logoTL.gotoAndPlay(0);
    			distortTimer.start();
    		} else if(tweenState[0] == 1) {
    			logoNext = 2;
    			tweenState[0] = 2; 
    			tweenState[2] = 1;
    		}
    	}
    	if(evt.target.name == "traeger") {
    		scrollSwitch = "off";
    		if(tweenState[0] == 0) {
    			logoSet = 3;
    			tweenState[0] = 1;
    			tweenState[1] = 1;
    			logoTL.clear();
    			logoTL.appendMultiple([new TweenLite(this, 0.5, {tween04:perlSet[5], ease:Sine.easeInOut}),
    			new TweenLite(page_stoves.traeger, 0.5, {alpha:.5, ease:Sine.easeInOut, onComplete:logoTLcon})]);		
    			logoTL.gotoAndPlay(0);
    			distortTimer.start();
    		} else if(tweenState[0] == 1) {
    			logoNext = 3;
    			tweenState[0] = 2; 
    			tweenState[2] = 1;
    		}
    	}
    }
    function stovesOut(evt:MouseEvent):void {
    	if(evt.target.name == "harman") {
    		if(tweenState[0] == 1) {
    			tweenState[1] = 2;
    			logoTL.appendMultiple([new TweenLite(this, 0.5, {tween01:0, ease:Sine.easeInOut}),
    			new TweenLite(page_stoves.harman, 0.5, {alpha:1, x:logoCrdX[0], y:logoCrdY[0], ease:Sine.easeInOut, onComplete:logoTLcon})]);		
    		} else if (tweenState[0] == 2) {
    			tweenState[2] = 3;
    		}
    		logoTLcon();
    	}
    	if(evt.target.name == "heatnglo") {
    		if(tweenState[0] == 1) {
    			tweenState[1] = 2;
    			logoTL.appendMultiple([new TweenLite(this, 0.5, {tween02:0, ease:Sine.easeInOut}),
    			new TweenLite(page_stoves.heatnglo, 0.5, {alpha:1, x:logoCrdX[1], y:logoCrdY[1], ease:Sine.easeInOut, onComplete:logoTLcon})]);		
    		} else if (tweenState[0] == 2) {
    			tweenState[2] = 3;
    		}
    		logoTLcon();
    	}
    	if(evt.target.name == "jotul") {
    		if(tweenState[0] == 1) {
    			tweenState[1] = 2;
    			logoTL.appendMultiple([new TweenLite(this, 0.5, {tween03:0, ease:Sine.easeInOut}),
    			new TweenLite(page_stoves.jotul, 0.5, {alpha:1, x:logoCrdX[2], y:logoCrdY[2], ease:Sine.easeInOut, onComplete:logoTLcon})]);		
    		} else if (tweenState[0] == 2) {
    			tweenState[2] = 3;
    		}
    		logoTLcon();
    	}
    	if(evt.target.name == "traeger") {
    		if(tweenState[0] == 1) {
    			tweenState[1] = 2;
    			logoTL.appendMultiple([new TweenLite(this, 0.5, {tween04:0, ease:Sine.easeInOut}),
    			new TweenLite(page_stoves.traeger, 0.5, {alpha:1, x:logoCrdX[3], y:logoCrdY[3], ease:Sine.easeInOut, onComplete:logoTLcon})]);		
    		} else if (tweenState[0] == 2) {
    			tweenState[2] = 3;
    		}
    		logoTLcon();
    	}
    }
    function stovesLoad(evt:Event):void {
    	page_stoves.visible=true;
    }
    //Logo Tween Control
    function logoTLcon(evt:Event = null):void {
    	if(tweenState[0] == 0) {
    		//trace("state 0 fired")
    	} else if(tweenState[0] == 1) {
    		if(tweenState[1] == 1) {
    			//trace("      1-1 (start)")
    		} else if(tweenState[1] == 2) {
    			//trace("      1-2 (stop)")
    			tweenState[1] = 3;
    			distortTimer.stop();
    			logoTL.gotoAndPlay(0.5);
    		} else if(tweenState[1] == 3) {
    			//trace("      1-3 (reset)")
    			tweenState[0] = 0;
    			tweenState[1] = 0;
    			scrollSwitch = "on";
    		}
    	} else if(tweenState[0] == 2) {
    		if(tweenState[1] == 1) {
    			//trace("      2-1 (start)")
    			distortTimer.start();
    		} else if(tweenState[1] == 2) {
    			//trace("      2-2 (stop)")
    			tweenState[1] = 3;
    			distortTimer.stop();
    			logoTL.gotoAndPlay(0.5);
    		} else if(tweenState[1] == 3) {
    			if(tweenState[2] == 1) {
    				//trace("      2-3-1 (finish first)")
    				tweenState[2] = 2;
    				TweenLite.to(logoName[logoSet],0.2,{alpha: 1, onComplete:logoTLcon});			
    			} else if(tweenState[2] == 2) {
    				//trace("      2-3-2 (set & start next)")
    				tweenState[0] = 1;
    				tweenState[1] = 1;
    				tweenState[2] = 0;
    				if(logoNext == 0) {
    					logoSet = logoNext;
    					logoTL.clear();
    					logoTL.appendMultiple([new TweenLite(this, 0.5, {tween01:perlSet[5], ease:Sine.easeInOut}),
    					new TweenLite(page_stoves.harman, 0.5, {alpha:.5, ease:Sine.easeInOut, onComplete:logoTLcon})]);
    					logoTL.gotoAndPlay(0);
    					distortTimer.start();
    				} else if(logoNext == 1) {
    					logoSet = logoNext;
    					logoTL.clear();
    					logoTL.appendMultiple([new TweenLite(this, 0.5, {tween02:perlSet[5], ease:Sine.easeInOut}),
    					new TweenLite(page_stoves.heatnglo, 0.5, {alpha:.5, ease:Sine.easeInOut, onComplete:logoTLcon})]);
    					logoTL.gotoAndPlay(0);
    					distortTimer.start();
    				} else if(logoNext == 2) {
    					logoSet = logoNext;
    					logoTL.clear();
    					logoTL.appendMultiple([new TweenLite(this, 0.5, {tween03:perlSet[5], ease:Sine.easeInOut}),
    					new TweenLite(page_stoves.jotul, 0.5, {alpha:.5, ease:Sine.easeInOut, onComplete:logoTLcon})]);
    					logoTL.gotoAndPlay(0);
    					distortTimer.start();
    				} else if(logoNext == 3) {
    					logoSet = logoNext;
    					logoTL.clear();
    					logoTL.appendMultiple([new TweenLite(this, 0.5, {tween04:perlSet[5], ease:Sine.easeInOut}),
    					new TweenLite(page_stoves.traeger, 0.5, {alpha:.5, ease:Sine.easeInOut, onComplete:logoTLcon})]);
    					logoTL.gotoAndPlay(0);
    					distortTimer.start();
    				}
    			} else if(tweenState[2] == 3) {
    				//trace("      2-3-3 (check before reset)")
    				tweenState[0] = 1;
    				tweenState[1] = 3;
    				tweenState[2] = 0;
    			}
    		}
    	}
    }
    //Tween Filter Functions(4)
    function get tween01() : Number
    {
    	return _tween[0];
    }
    function get tween02() : Number
    {
    	return _tween[1];
    }
    function get tween03() : Number
    {
    	return _tween[2];
    }
    function get tween04() : Number
    {
    	return _tween[3];
    }
    function set tween01(tween01 : Number) : void
    {
    	_tween[0] = tween01;
    	dpf01.scaleX = 48 * _tween[0];
    	dpf01.scaleY = 48 * _tween[0];
    	perlinBd01.perlinNoise(7 * _tween[0], perlSet[1], perlSet[2], perlSet[3], false, true);
    	logoName[0].filters = [dpf01];
    }
    function set tween02(tween02 : Number) : void
    {
    	_tween[1] = tween02;
    	dpf02.scaleX = 48 * _tween[1];
    	dpf02.scaleY = 48 * _tween[1];
    	perlinBd02.perlinNoise(7 * _tween[1], perlSet[1], perlSet[2], perlSet[3], false, true);
    	logoName[1].filters = [dpf02];
    }
    function set tween03(tween03 : Number) : void
    {
    	_tween[2] = tween03;
    	dpf03.scaleX = 48 * _tween[2];
    	dpf03.scaleY = 48 * _tween[2];
    	perlinBd03.perlinNoise(7 * _tween[2], perlSet[1], perlSet[2], perlSet[3], false, true);
    	logoName[2].filters = [dpf03];
    }
    function set tween04(tween04 : Number) : void
    {
    	_tween[3] = tween04;
    	dpf04.scaleX = 48 * _tween[3];
    	dpf04.scaleY = 48 * _tween[3];
    	perlinBd04.perlinNoise(7 * _tween[3], perlSet[1], perlSet[2], perlSet[3], false, true);
    	logoName[3].filters = [dpf04];
    }

Posting Permissions

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




Click Here to Expand Forum to Full Width

HTML5 Development Center