Flash Tutorials - Herong's Tutorial Examples - v3.03, by Dr. Herong Yang
Space Explorer v.3 - Space Car Bouncing
This section provides a tutorial example on how to use ActionScript 3 statement blocks in SWFC script file to build my Space Explorer - Version 3: the space car is wondering and bouncing between walls!
In Space Explorer Version 2, the space car will go out of the space boundary if you wait for a few minutes.
For Version 3, space_explorer_3.sc, I am trying to make space car bouncing back whenever it reaches a boundary:
#- space_explorer_3.sc #- Copyright (c) 2014 by Dr. Herong Yang, herongyang.com # .flash bbox=400x400 background=#000044 fps=12 .circle space_car r=6 line=8 color=#cccccc fill=#ff0000 .frame 1 .put space_car .action: _root.bbox_size = 400; _root.car_size = 20; _root.car_radius = 6; _root.x_acc_factor = 0.5; _root.y_acc_factor = 0.5; // car center position and speed _root.x_pos = 10; _root.y_pos = 10; _root.x_speed = 1.0; _root.y_speed = 0.5; // car center moving boundaries _root.x_min = 0.5*_root.car_size; _root.y_min = 0.5*_root.car_size; _root.x_max = _root.bbox_size - 0.5*_root.car_size; _root.y_max = _root.bbox_size - 0.5*_root.car_size; // top left corner is the anchor _x = _root.x_pos-_root.car_radius; _y = _root.y_pos-_root.car_radius; .end .frame 2 .action: _root.x_speed += _root.x_acc_factor*(Math.random()-0.50); _root.y_speed += _root.y_acc_factor*(Math.random()-0.50); _root.x_pos += _root.x_speed; _root.y_pos += _root.y_speed; // build bouncing walls if (_root.x_pos < _root.x_min) { _root.x_pos = 2*_root.x_min - _root.x_pos; _root.x_speed = - _root.x_speed; } if (_root.y_pos < _root.y_min) { _root.y_pos = 2*_root.y_min - _root.y_pos; _root.y_speed = - _root.y_speed; } if (_root.x_pos > _root.x_max) { _root.x_pos = 2*_root.x_max - _root.x_pos; _root.x_speed = - _root.x_speed; } if (_root.y_pos > _root.y_max) { _root.y_pos = 2*_root.y_max - _root.y_pos; _root.y_speed = - _root.y_speed; } _x = _root.x_pos-_root.car_radius; _y = _root.y_pos-_root.car_radius; .end .frame 3 .action: gotoFrame(1); // index=0 is for frame 1 play(); .end .end
Note that Flash Player uses the top left corner as the anchor to put objects on the frame. But it is much easier to use the center of the circle to calculate bouncing walls.
Compile space_explorer_3.sc and generate the HTML code:
C:\herong>\local\SWFTools\swfc.exe space_explorer_3.sc -o space_explorer_3.swf C:\herong>\local\SWFTools\swfdump.exe -E space_explorer_3.swf > space_explorer_3.html
Open space_explorer_3.html in a Web browser. You will see that my space car is wondering around and bouncing off boundaries!
If you are reading the Web version of this book,
you will see the Flash running here.
Otherwise, you will see a static image.
Table of Contents
Adobe Flash Player Plugin for Firefox
Adobe Flash Player Plugin for Chrome
Adobe Flash Player Plugin for Safari
Adobe Flash Player ActiveX for IE
Using "object" Elements for Flash Files
Using "embed" Elements for Flash Files
"mp3player" - MP3 Music Player
SWFObject - Hidding "object" behind JavaScript
SWFTools - SWF File Manipulation Tools
SWFC Script to Generate Flash SWF Files
►ActionScript Embedded in SWFC Script
Using ActionScript in SWFC Scripts
Space Explorer v.1 - Space Car Running
Space Explorer v.2 - Space Car Wondering
►Space Explorer v.3 - Space Car Bouncing
Space Explorer v.4 - Space Car Stabilized
AS3Compile - ActionScript 3 Compiler