Difference between revisions of "Actionscript"

From Wikicliki
Jump to: navigation, search
(See Also)
 
(36 intermediate revisions by 2 users not shown)
Line 1: Line 1:
actionscript, that infuriatingly intractable marshmellow fluff...
+
http://ntt.cc/2008/04/09/over-30-useful-as3-open-source-projects.html
so far i have only understood the most basic of concepts, but now i will try to learn it well.
 
  
== trace ==
+
== Basics ==
 +
=== Operators ===
  
<pre>var message = "Hi there";
+
* + for addition
trace (message);                                   // prints "Hi there"
+
* - for subtraction
 +
* asterisk for multiply
 +
* / for divide
 +
 
 +
these two are the same:
 +
<pre>myNum = myNum + 6;
 +
myNum += 6;</pre>
 +
 
 +
* ++ add one
 +
* -- decrease by one
 +
 
 +
those can be postfix or prefix operators but remember that only prefix affects it immediately.
 +
<pre>myNum = 5;
 +
trace(myNum++);       // displays 5 (adds one to next trace)
 +
trace(myNum);       // displays 6 (has added one from the postfix)
 +
trace(++myNum);      // displays 7 (adds one as its a prefix)
 
</pre>
 
</pre>
  
<pre>var message = "yellow";
+
use this incremental thing to modify property over time:
trace ("big " + message + " truck");               // prints "big yellow truck"
+
<pre>my_mc.onEnterFrame = function () {
</pre>
+
this._rotation += 5;      // makes mc rotate by 5 degrees clockwise for each tick of frame rate
 +
};</pre>
 +
 
 +
=== Checking/Comparing Values ===
 +
 
 +
* == checks for logical equality
 +
*  != checks for logical inequality
 +
* === checks for strict logical equality
 +
* !== checks for strict logical inequality
 +
 
 +
<pre>logical equality test
 +
trace(5 == 6);      // false             
 +
trace(6 == 6);      // true
 +
trace(6 == "6");       // true
 +
 
 +
logical inequality test
 +
trace(5 != 6);      // true             
 +
trace(6 != 6);      // false             
 +
trace(6 != "6");       // false</pre>
  
== code hinting suffixes/names==
+
notice how with or without the quotation marks its okay... but with the strict logical operators, its not the case.
  
to keep in good form you should keep to these common suffixes so that any programmer can read your code easily without finding it utterly incomprehensible.
+
<pre>strict logical equality test
 +
trace(5 === 6);      // false             
 +
trace(6 === 6);      // true
 +
trace(6 === "6");      // false
 +
trace("6" === 6);      // false
 +
trace("6" === "6");      // true
  
variables:
+
strict logical inequality test
*must start with letters, underscore or dollarsign.
+
trace(5 !== 6);      // true             
*no hyphens or other punctuation besides the underscore.
+
trace(6 !== 6);      // false             
*cannot start with a number.
+
trace(6 !== "6");      // true
*are case-insensitive, but keep it constant or you might get confused
+
trace("6" !== 6);      // true
 +
trace("6" !== "6");      // false</pre>
  
 +
you have to remember that you shouldn't use just one = to test if its equal as the single = assigns values to things.
  
*xxx_str  // means the variable contains a string
+
=== Checking Datatype ===
*xxx_arr // means the variable contains an array
 
  
 +
<pre>var myVar = 5;
 +
if (typeof myVar == "number") {
 +
  trace("Its a number");
 +
}</pre>
  
== conditionals ==
+
NaN is when its Not a Number but you can't just check it against the NaN. You have to use the special isNaN function (conversely, you can also use !isNaN to find a number)
  
<pre>var message = "yellow";
+
<pre>var myVar - 15 - "coffee";
trace ("big " + message + " truck");                // prints "big yellow truck"
+
if (isNaN(myVar)) {
if (message == "yellow") {
+
trace("Thats not a number");
trace ("yes, i did say big yellow truck.");       // prints "yes, i did say big yellow truck"
 
 
}</pre>
 
}</pre>
  
<pre>= assigning value
+
=== Comparing Arrays ===
== comparing values</pre>
 
  
== loops ==
+
when arrays are compared to see if they are the same, it has to be the exact same thing ie: can't just contain the same items, it has to be equalled, like literally...
  
<table><tr><td valign=top>this sequence... <pre>trace (101);
+
<pre>arrayOne = newArray("wonk", "wink");
trace (102);
+
arrayTwo = newArray("wonk", "wink");
trace (103);
+
trace(arrayOne == arrayTwo); // displays false
trace (104);
 
trace (105);</pre></td>
 
<td valign=top>is equal to:
 
<pre>var x = 101;
 
trace (x);
 
x = x + 1;
 
trace (x);
 
x = x + 1;
 
trace (x);
 
x = x + 1;
 
trace (x);
 
x = x + 1;
 
trace (x);</pre></td>
 
<td valign=top>is also equal to:
 
<pre>var x = 101;
 
while (x <= 105) {    // as long as x is less than 105...
 
trace (x);
 
x = x + 1;          // ...continue to trace x but add one each time
 
}</pre></td>
 
<td valign=top>they all print:
 
<pre>101
 
102
 
103
 
104
 
105</pre></td></tr></table>
 
  
== functions ==
+
arrayOne = newArray("wonk", "wink");
 +
arrayOne = arrayTwo;
 +
trace(arrayOne == arrayTwo); // displays true</pre>
  
sample:
+
=== Conditionals ===
  
<pre>function area(height, width){
+
<pre>var message = "yellow";                        // the equal sign assigns values to variables
return height * width;
+
trace ("big " + message + " truck");            // prints "big yellow truck"
}
+
if (message == "yellow") {                     // the double equal sign checks to see if variables are equal
area1 = area(10,15);
+
trace ("yes, i did say big yellow truck.");     // prints "yes, i did say big yellow truck"
area2 = area(10,20);
+
trace (typeof message);                        // prints "string"
area3 = area(10,20);
+
var x = a;                                      // prints "number"
</pre>
+
trace (typeof a)
 +
}</pre>
 +
 
 +
<pre>var x = 1;
 +
while (x <= 5) {                // as long as x is less than 5...
 +
trace (x);                     // return 1 in output
 +
x = x + 1;                     // return 2 3 4 5 in output
 +
}</pre>
 +
 
 +
=== Reusable functions===
  
== event based execution ==
+
== Runtime Environment ==
 +
=== Include external actionscript file===
 +
<pre>#include "filename.as"          // includes the .as file at runtime (must be in same folder as .fla)</pre>
  
<pre>someObject.onSomeEvent = someFunction;</pre>
+
=== Detecting player/OS ===
 +
=== Setting movie dimensions ===
  
for example:
+
== Color ==
<pre>skaGirl.onRelease = dirtyskanking;            // the object named skaGirl will dirtyskank when mouse is released
+
=== Setting RGB ===
 +
=== Setting Transparency ===
 +
=== Transform and restore RGB ===
 +
=== Controlling RGB with sliders ===
  
function dirtyskanking () {
+
== Drawing ==
this._parent._rotation = 360;                    // defines the rotation of the dirtyskanking.
 
}
 
</pre>
 
  
== sample ==
+
== Numbers ==
 +
=== Rounding Numbers ===
  
=== quiz ===
+
== Text Field ==
  
<pre>
+
== Arrays ==
button1.onRelease = function () {        // on pressing button 1
+
Oh no.
this._parent.q1answer = 1;                // assigning 1 to q1 answer
 
this._parent.gotoAndStop("q2")            // after which we go to frame labelled as q2
 
}
 
  
if (q1answer == 3) {                      //  if answer was right
+
== Strings ==
  totalCorrect = totalCorrect++;          //  increase number of total correct qns by one
 
}
 
</pre>
 
  
== tips ==
+
== Date/Time ==
  
* use frame labels rather than frame numbers. a starting frame could be init.
 
  
 
== See Also ==
 
== See Also ==
*[http://livedocs.adobe.com/flashlite/2/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00000642.html preloader]
+
 
 +
[[Category:Programming]]

Latest revision as of 03:39, 1 June 2009

http://ntt.cc/2008/04/09/over-30-useful-as3-open-source-projects.html

Basics

Operators

  • + for addition
  • - for subtraction
  • asterisk for multiply
  • / for divide

these two are the same:

myNum = myNum + 6;
myNum += 6;
  • ++ add one
  • -- decrease by one

those can be postfix or prefix operators but remember that only prefix affects it immediately.

myNum = 5;
trace(myNum++);       // displays 5 (adds one to next trace)
trace(myNum);       // displays 6 (has added one from the postfix)
trace(++myNum);       // displays 7 (adds one as its a prefix)

use this incremental thing to modify property over time:

my_mc.onEnterFrame = function () {
this._rotation += 5;       // makes mc rotate by 5 degrees clockwise for each tick of frame rate
};

Checking/Comparing Values

  • == checks for logical equality
  •  != checks for logical inequality
  • === checks for strict logical equality
  •  !== checks for strict logical inequality
logical equality test 
trace(5 == 6);       // false               
trace(6 == 6);       // true
trace(6 == "6");       // true

logical inequality test
trace(5 != 6);       // true               
trace(6 != 6);       // false               
trace(6 != "6");       // false

notice how with or without the quotation marks its okay... but with the strict logical operators, its not the case.

strict logical equality test 
trace(5 === 6);       // false               
trace(6 === 6);       // true
trace(6 === "6");       // false
trace("6" === 6);       // false
trace("6" === "6");       // true

strict logical inequality test
trace(5 !== 6);       // true               
trace(6 !== 6);       // false               
trace(6 !== "6");       // true
trace("6" !== 6);       // true
trace("6" !== "6");       // false

you have to remember that you shouldn't use just one = to test if its equal as the single = assigns values to things.

Checking Datatype

var myVar = 5;
if (typeof myVar == "number") {
  trace("Its a number");
}

NaN is when its Not a Number but you can't just check it against the NaN. You have to use the special isNaN function (conversely, you can also use !isNaN to find a number)

var myVar - 15 - "coffee";
if (isNaN(myVar)) {
trace("Thats not a number");
}

Comparing Arrays

when arrays are compared to see if they are the same, it has to be the exact same thing ie: can't just contain the same items, it has to be equalled, like literally...

arrayOne = newArray("wonk", "wink");
arrayTwo = newArray("wonk", "wink");
trace(arrayOne == arrayTwo);		// displays false

arrayOne = newArray("wonk", "wink");
arrayOne = arrayTwo;
trace(arrayOne == arrayTwo);		// displays true

Conditionals

var message = "yellow";                         // the equal sign assigns values to variables
trace ("big " + message + " truck");            // prints "big yellow truck"
if (message == "yellow") {                      // the double equal sign checks to see if variables are equal
trace ("yes, i did say big yellow truck.");     // prints "yes, i did say big yellow truck"
trace (typeof message);                         // prints "string"
var x = a;                                      // prints "number"
trace (typeof a)
}
var x = 1;
while (x <= 5) {                // as long as x is less than 5...
trace (x);                      // return 1 in output
x = x + 1;                      // return 2 3 4 5 in output
}

Reusable functions

Runtime Environment

Include external actionscript file

#include "filename.as"          // includes the .as file at runtime (must be in same folder as .fla)

Detecting player/OS

Setting movie dimensions

Color

Setting RGB

Setting Transparency

Transform and restore RGB

Controlling RGB with sliders

Drawing

Numbers

Rounding Numbers

Text Field

Arrays

Oh no.

Strings

Date/Time

See Also