MutleyDog
Members-
Posts
21 -
Joined
-
Last visited
MutleyDog's Achievements
0
Reputation
-
Great stuff. I've attached my final .fla which contains all the solutions to the questions raised in this thread. Thanks for the help and support MutleyDog Keywords: hitTestObject, AS3, TweenMax, pass variables, character rotation
-
I've attached the file that doesnt work to illustrate that TweenMax.killTweensOf(Badger) doesnt appear to work when I'm passing a variable into the tweenUpdateHandler function.
-
Well, I’ve attached a file which has the badger moving and managing to ‘bounce’ off irregular shaped objects. Hope it’s of use to someone. ... there’s one small snag though, and after a few hours it’s either complex – or I’m missing something. I need to pass a variable to the ‘tweenUpdateHandler’ so that I can tell it which direction the badger is moving to ‘bounce’ it the opposite direction (i.e. off the object it’s just hit). There are 8 possible directions (up, down, left, right and four diagonals). I’ve added the value ‘direction’ to be parsed into the tweenUpdateHandler ('direction' is an integer going from 1 to 8 representing 8 directions the badger could be moving in) – once parsed into the tweenUpdateHandler it stops the killTweensOf from working. My code is: stop(); import com.greensock.*; import com.greensock.easing.*; stage.addEventListener(MouseEvent.CLICK,ChangeMyBadgerLocation, false, 0, true); function ChangeMyBadgerLocation(e:Event):void { var direction:int = 6; // quick fudge as the code for getting the direction and 'turning' the badger is quite long - happy to submit it if intersted? TweenMax.to(Badger,1,{x:stage.mouseX, y:stage.mouseY,ease:Sine.easeInOut, onUpdate:tweenUpdateHandler(direction)}); } function tweenUpdateHandler(direction):void { if (Badger.hitTestObject(BIGobject1)||Badger.hitTestObject(BIGobject2)||Badger.hitTestObject(BIGobject3)||) { trace("Ouch - hit the object!"); TweenMax.killTweensOf(Badger); //this doesnt work once I've parsed the 'direction' variable in Badger.x = Badger.x - 20; //nudge the badger a little to the left - off the object it's hit. But this could be any one of 8 directions so I need to parse the direction variable. } }
-
The only thing I might 'add' is if I use TweenMax and do: if (Badger.hitTestObject(BIGobject)) { trace("Ouch - hit the object!"); TweenMax.killTweensOf(Badger); } This causes the badger to gets 'embedded' into the BIGobject and it takes several clicks to un-stick him. I think the way round this is to set Boolean to overwrite the killTweensOf and do a little bit of trigonometry to make the badger 'bounce' a small distance off the big object. Also, as the shapes in the game are irregular I believe I should make several smaller hit objects to mark out the boundary - this is how it's done is AS2.
-
Thanks Jack - that's exactly what I wanted. Make sense now. There's not a lot out there on hitTestObject with AS3 and this thread seems to be the only Google result. Great stuff! Andy
-
Great Stuff Jack - my output reads (on one mouse click): Ouch - hit the object! Ouch - hit the object! Ouch - hit the object! Ouch - hit the object! Ouch - hit the object! Ouch - hit the object! Ouch - hit the object! Ouch - hit the object! Ouch - hit the object! Ouch - hit the object! Ouch - hit the object! Ouch - hit the object! Ouch - hit the object! Ouch - hit the object!
-
sorry - working from home and got distracted by my 2 year old daughter playing. I've got a game where the player can be a range of animals. In my simplified version they have to miss objects, by clicking on the screen and TweenLiting to a different area. The problem I'm having is sometimes they pass through the object when the hitTestObject should return trace("Ouch - that hurt!"). I've attached my .fla in case it's of interest? Andy PS: They really need to stop when they hit the object which I think is TweenMax function.
-
Hi, I've got a game coming on quite nicely in AS3 and it requires people to navigate objects. I'm using hitTestObject on a vew simple shapes - sometimes it returns 'hit' and othertimes not. i've simplified the code to: import com.greensock.TweenLite; import com.greensock.easing.*; stage.addEventListener(MouseEvent.CLICK,ChangeMyBadgerLocation, false, 0, true); //Stage_mc.addEventListener(MouseEvent.CLICK,ChangeMyBadgerLocation, false, 0, true); function ChangeMyBadgerLocation(e:Event):void { var myBadgerX:int = 0; var myBadgerY:int = 0; myBadgerX = stage.mouseX; myBadgerY = stage.mouseY; TweenLite.to(Badger,1,{x:myBadgerX, y:myBadgerY, ease:Cubic.easeInOut}); if (Badger.hitTestObject(BIGobject)) { trace("Ouch - hit the object!"); } }
-
Perfect! - I think you're building more of the website than I am. I'll put you in the credits
-
Hi, How do you do Tweening with conditional logic. For example Tween if something is true, dont Tween if it's false. I've set a global variable which should effect movies being loaded. I've tried putting functions into the Tween expression etc. The variable is working but not effecting the Tweens - a simplified version would be (AS2 I'm afraid): import com.greensock.*; import com.greensock.easing.*; var Bool:Boolean = false; if (Bool == true){ trace(Bool); this.Holder.circle.onRollOver = function() { TweenMax.to(this, 0.5, {_xscale:120, _yscale:120, _rotation:-3, ease:Elastic.easeOut}); }; this.Holder.circle.onRollOut = this.Ernst_mc.onReleaseOutside = function() { TweenMax.to(this, 0.3, {_xscale:100, _yscale:100, _rotation:0, ease:Bounce.easeOut}); }; }; this.Button_mc.onRelease = function() { Bool = true; trace(Bool); };
-
... no worries, got it working and thanks for pointing me in the right direction. I think killChildTweens kills tweens that are running whilst I call the 'killChildtweens' method - which is not what I'm after - you're right.
-
Thanks for the advice, but I think killChildTweens is what i'm after. I'm trying to replicate exactly the site: www.amazing-academy.com. When you first visit the site a yellow post-it-note flies across the screen, all the background tweens are killed off until the user 'closes' the post-it note.. I'm happy to use conditional logic and think I can see how it could be done (global variable, few 'if's etc.) Andy
-
I've checked the forum and the site - but wouldnt mind an examlpe of killChildTweensOf. I've got a movie clip loading into another movieclip. At times I need to stop all the animations in the loaded movieclip. I also need to resume the movieclips when the user has read the notice appearing on the stage. My code is: TweenMax.killChildTweensOf(AA_All_mc.holder_mc.loader_mc,false); ..but the Tweens keep happening. To illustrate my point I've made a simplified version as an attachment, but the only code is: import com.greensock.*; import com.greensock.easing.*; this.Holder.circle.onRollOver = function() { TweenMax.to(this, 0.5, {_xscale:120, _yscale:120, _rotation:-3, ease:Elastic.easeOut}); }; this.Holder.circle.onRollOut = this.Ernst_mc.onReleaseOutside = function() { TweenMax.to(this, 0.3, {_xscale:100, _yscale:100, _rotation:0, ease:Bounce.easeOut}); }; this.Button_mc.onRelease = function() { //trace("killing tweens"); TweenMax.killChildTweensOf(Holder,false); };
-
Thanks for getting back so soon. I've included the smoothing as recommended - thanks for the tip. I've smoothed everything with no real visible improvement though I've found a great article on a Nokia forum named 'Flash Lite: Optimization Tips and Tricks' which I'm currently working through (http://tinyurl.com/33zvdd3). The problem appears to be with the background green tiles - if I remove it everything's fine - but it's just a simple repeating square made from a few vectors - As for the other two questions: I had a conflict between running defeerent versions of ActionScrip movies inside each other - thanks for pointing me in the right direction I'll try the killChildTweensOf() method when this machine cools off. All this tweening is cooking it's insides. Andy
-
Hi, I've posted this question a couple of weeks ago - but after trying the advice I still cant find a solution. I've also pasted two related questions below as I couldnt find answers anywhere. Basically I've got to replicate a website exactly (long story but the original developer has all the .fla files and has left the country) and the tweening is prooving a real nightmare. The site I've got to replicate is here: http://www.amazing-academy.com/ and you'll see my attempt here: http://www.doogle.com/AmazingAcademy/MovieClips/AA.html I've tried Tweenlite and Caurina and Mc Tween with no real improvement. The images are all exactly the same file size and the framerate is quite low. However, my *version* runs all clunky and juddery - Any advice??? _________________________ Another question: How do you reference a tween in anther movie clip (AS2). I've tried: TweenLite.to(_root.MovieClip_mc,0.3,{_x:120, _y:50}; but nothing happens - although this is the correct target path _________________ Final question before I go, but is there a way to stop all Tweens in a movieclip. My example has a pop-up which blurs the background. I also need to turn all the Tweening off in the background Thanks - Andy!!