Difference between revisions of "Actionscript 3 Sandbox"
From Wikicliki
| (9 intermediate revisions by 2 users not shown) | |||
| Line 6: | Line 6: | ||
*[http://www.bytearray.org/?page_id=82 interesting collection of as3 classes] | *[http://www.bytearray.org/?page_id=82 interesting collection of as3 classes] | ||
* http://www.bytearray.org/?page_id=82 | * http://www.bytearray.org/?page_id=82 | ||
| + | * http://www.flashandmath.com/advanced/card/math2.html | ||
| + | |||
| + | == dragging == | ||
| + | |||
| + | <pre> | ||
| + | // MANU SCRIPT DRAG | ||
| + | |||
| + | tab2.manu_1.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler); | ||
| + | tab2.manu_1.addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler); | ||
| + | tab2.manu_2.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler); | ||
| + | tab2.manu_2.addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler); | ||
| + | tab2.manu_3.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler); | ||
| + | tab2.manu_3.addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler); | ||
| + | tab2.manu_4.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler); | ||
| + | tab2.manu_4.addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler); | ||
| + | tab2.manu_5.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler); | ||
| + | tab2.manu_5.addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler); | ||
| + | |||
| + | //rectX, rectY, rectWidth, rectHeight; | ||
| + | |||
| + | function mouseDownHandler(evt:MouseEvent):void | ||
| + | { | ||
| + | pingSoundPlay(); | ||
| + | var object = evt.target; | ||
| + | object.startDrag(false, new Rectangle(90,-460, 560, 540)); | ||
| + | } | ||
| + | |||
| + | |||
| + | function mouseUpHandler(evt:MouseEvent):void | ||
| + | { | ||
| + | var object = evt.target; | ||
| + | object.stopDrag(); | ||
| + | }</pre> | ||
| + | |||
| + | == problem solution == | ||
| + | |||
| + | problem: | ||
| + | mc.visible = 1 // WRONG, will generate error saying it is int where should be boolean | ||
| + | |||
| + | solution: | ||
| + | mc.visible = true // CORRECT | ||
| + | |||
| + | == Basics of AS3 == | ||
| + | |||
| + | OPTION F9 == Actions Panel | ||
| + | |||
| + | * The difference between AS2 and AS3: | ||
| + | <pre>AS2: | ||
| + | my_MC.createTextField("instance_name", 10,0,0 Stage.width, 22); | ||
| + | my_MC.attachMovie("MC_name", "moviename_mc, this.getNextHighestDepth()); | ||
| + | 10,0,0,Stage.width == dimensions | ||
| + | 22 == depth | ||
| + | |||
| + | Versus AS3: | ||
| + | var myText:TextField = new TextField(); | ||
| + | var myMC:MovieClip = new MovieClip(); | ||
| + | now in AS3 you dont have to createTextField or attachMovie, and you can define all the variables later. | ||
| + | </pre> | ||
| + | |||
| + | * select the property (highlighted in blue in the Actions panel), and press F1 to see a help menu telling you about what values the property can have. | ||
| + | * strings must be in quotation marks (var userName:<DataType> = "Data";) | ||
| + | * you assign data type to the variable so you dont lose track of what it is. | ||
| + | * trace(variableName); | ||
| + | * trace("long text comment"); | ||
| + | * function thing():void - the void means no return argument | ||
| + | |||
| + | <pre>function moveObj(thing:MovieClip):void | ||
| + | { | ||
| + | thing.y -= 50; // mc moves 50px up | ||
| + | thing.rotation += 45; // mc rotates 45 degrees right | ||
| + | } | ||
| + | moveObj(thing1_mc);</pre> | ||
| + | |||
| + | <pre>function moveObj(thing:MovieClip, movement:Number, rotationAmount:Number):void | ||
| + | { | ||
| + | thing.y -= movement; // mc moves 50px up | ||
| + | thing.rotation += rotationAmount; // mc rotates 45 degrees right | ||
| + | } | ||
| + | moveObj(thing1_mc, 50, 45);</pre> | ||
| + | |||
| + | <pre>function moveObj():Number // the number here defines what kind of thing is returned | ||
| + | { | ||
| + | thing1_mc.y -= 50; | ||
| + | thing1_mc.scaleY = 2; | ||
| + | return thing1_mc.y; | ||
| + | } | ||
| + | thing2_mc.y = moveObj();</pre> | ||
| + | |||
| + | * events must have listeners | ||
| + | <pre>myMC.addEventListener(type:String,function) | ||
| + | myMC.addEventLIstener(MouseEvent.CLICK, onClick);</pre> | ||
| + | |||
| + | *we are looking for a MouseEvent.SpecificallytheClick and once we hear it a function "onClick" will run | ||
| + | |||
| + | <pre>function onClick(event:MouseEvent):void { | ||
| + | trace("its been clicked!!!"); | ||
| + | }</pre> | ||
| + | |||
| + | * myMC.buttonMode == use handcursor when its looking for event (eg: mouseevent) | ||
| + | |||
| + | <pre>function onClick(event:MouseEvent):void { | ||
| + | event.target.rotation += 45; | ||
| + | } // this means that the thing which generates the event rotates!</pre> | ||
Latest revision as of 14:02, 14 May 2012
AS3 brings the core language aspects of AS2 into complianace with ECMAScript standard (the international standardized programming language for scripting).
- http://www.flashandmath.com/
- http://www.learningactionscript3.com/2009/06/30/as3-tips-tricks-and-experiments/#more-61
- http://www.adobe.com/devnet/flash/quickstart/creating_class_as3/
- interesting collection of as3 classes
- http://www.bytearray.org/?page_id=82
- http://www.flashandmath.com/advanced/card/math2.html
dragging
// MANU SCRIPT DRAG
tab2.manu_1.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
tab2.manu_1.addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
tab2.manu_2.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
tab2.manu_2.addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
tab2.manu_3.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
tab2.manu_3.addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
tab2.manu_4.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
tab2.manu_4.addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
tab2.manu_5.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
tab2.manu_5.addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
//rectX, rectY, rectWidth, rectHeight;
function mouseDownHandler(evt:MouseEvent):void
{
pingSoundPlay();
var object = evt.target;
object.startDrag(false, new Rectangle(90,-460, 560, 540));
}
function mouseUpHandler(evt:MouseEvent):void
{
var object = evt.target;
object.stopDrag();
}
problem solution
problem: mc.visible = 1 // WRONG, will generate error saying it is int where should be boolean
solution: mc.visible = true // CORRECT
Basics of AS3
OPTION F9 == Actions Panel
- The difference between AS2 and AS3:
AS2:
my_MC.createTextField("instance_name", 10,0,0 Stage.width, 22);
my_MC.attachMovie("MC_name", "moviename_mc, this.getNextHighestDepth());
10,0,0,Stage.width == dimensions
22 == depth
Versus AS3:
var myText:TextField = new TextField();
var myMC:MovieClip = new MovieClip();
now in AS3 you dont have to createTextField or attachMovie, and you can define all the variables later.
- select the property (highlighted in blue in the Actions panel), and press F1 to see a help menu telling you about what values the property can have.
- strings must be in quotation marks (var userName:<DataType> = "Data";)
- you assign data type to the variable so you dont lose track of what it is.
- trace(variableName);
- trace("long text comment");
- function thing():void - the void means no return argument
function moveObj(thing:MovieClip):void
{
thing.y -= 50; // mc moves 50px up
thing.rotation += 45; // mc rotates 45 degrees right
}
moveObj(thing1_mc);
function moveObj(thing:MovieClip, movement:Number, rotationAmount:Number):void
{
thing.y -= movement; // mc moves 50px up
thing.rotation += rotationAmount; // mc rotates 45 degrees right
}
moveObj(thing1_mc, 50, 45);
function moveObj():Number // the number here defines what kind of thing is returned
{
thing1_mc.y -= 50;
thing1_mc.scaleY = 2;
return thing1_mc.y;
}
thing2_mc.y = moveObj();
- events must have listeners
myMC.addEventListener(type:String,function) myMC.addEventLIstener(MouseEvent.CLICK, onClick);
- we are looking for a MouseEvent.SpecificallytheClick and once we hear it a function "onClick" will run
function onClick(event:MouseEvent):void {
trace("its been clicked!!!");
}
- myMC.buttonMode == use handcursor when its looking for event (eg: mouseevent)
function onClick(event:MouseEvent):void {
event.target.rotation += 45;
} // this means that the thing which generates the event rotates!