Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

General Discussion

ActionScript 2.0

Does anyone know action script 2.0? If you do, I need some quick URGENT help.

8 Answers

I am probably a bit rusty, but I used to do some AS coding. I'll do what I can to help.

onClipEvent (load) {
var ground:MovieClip = _root.ground;
var grav:Number = 0;
var gravity:Number = 2;
var speed:Number = 14;
var maxJump:Number = -26
;
var touchingGround:Boolean = false;
}
onClipEvent (enterFrame) {
_y += grav;
grav += gravity;
while (ground.hitTest(_x, _y, true)) {
_y -= gravity;
grav = 0;
}
if (ground.hitTest(_x, _y+5, true)) {
touchingGround = true;
} else {
touchingGround = false;
}
if (Key.isDown(Key.RIGHT)) {
_x += speed;
_xscale = 100
}
if (Key.isDown(Key.LEFT)) {
_x -= speed;
_xscale = -100
}
if (Key.isDown(Key.UP) && touchingGround) {
grav = maxJump;
}
if (ground.hitTest(_x+(_width/2), _y-(_height/2), true)) {
_x -= speed;
}
if (ground.hitTest(_x-(_width/2), _y-(_height/2), true)) {
_x += speed;
}
if (ground.hitTest(_x, _y-(height), true)) {
grav = 3;
}
}


onClipEvent (enterFrame) {
if (Key.isDown(Key.LEFT)) {
this.gotoAndStop("2");
} else {

if (Key.isDown(Key.RIGHT)) {
this.gotoAndStop("2");
} else {
this.gotoAndStop("1");
}


}
}
onClipEvent (enterFrame) {
if (Key.isDown(Key.UP)) {
this.gotoAndStop("3");
}
}
onClipEvent (enterFrame) {
if (Key.isDown(Key.DOWN)) {
this.gotoAndStop("4");
}
}

Okay, so this is a platform game. Our code for our character is the one above.

The game consists on touching bubbles that get you to the next level. When you grab the incorrect bubble, you get sent to another keyframe which is a game over screen. Each level is in a different keyframe. Here is the code for the bubble:

Wrong bubble touched:

onClipEvent (enterFrame) {
if (this.hitTest(_root.char))
{
_root.gotoAndStop(150);
}
}

Correct bubble touched:

.

onClipEvent (enterFrame) {
if (this.hitTest(_root.char))
{
_root.gotoAndStop(132);
}
}

What is the issue? Is it not going to the correct keyframe on the hitTests? I assume the last 2 onClipEvent's you posted are attached to good and bad bubbles?

Yes, the first onClipEvent I posted is the wrong bubble, the second is the correct bubble. When the character hits any of the two bubbles, it goes right back to the first frame and stops.

Are you sure the frames (150 and 132) that you want to target are in _root or somewhere else in the _level hierarchy? It's possible you have a scoping issue depending upon the context of _root if you have multiple .swf's or _level's.

From what I can recall, it is advisable to use the format this._parent or _parent instead of _root to avoid scoping issues with portability and loading multiple .swf's.

edit: Refined post after shaking the dust off and thinking about AS again. ;-p

That did not work... Is there a way for me to send you my .fla so that you can proofread it? Maybe your email?

You can connect with me on Google+ and put your .fla on Google Drive for me to download, if you use that.

I just did, I sent you a message.