am77.de

Grafik Design, Interaktive Gestaltung, Spiele, Motion Graphics

Archive for the ‘AS3’ tag

JavaScript aus Flash AS3

leave a comment

Mit AS3 kann man aus dem swf heraus JavaScript-Code ausführen. Man kann auch die komplette JS-Funktion selbst bestimmen. Kleines Beispiel, um die komplette Url-Adresse aus der Browserleiste auszulesen:

var href:String = ExternalInterface.call(“function(){return location.href;}”)

Written by am

February 29th, 2012 at 1:53 pm

Posted in Flash/ActionScript

Tagged with , ,

AS3 gradient fill snippet

leave a comment

So geht ein Farbverlauf in Actionscript 3


var spr:Sprite= new Sprite();
var matr:Matrix = new Matrix();
matr.createGradientBox( 200, 20, 0, 0, 0 );
spr.graphics.beginGradientFill( GradientType.RADIAL, [0x00ffff, 0xff0000], [1,1], [ 0, 255 ], matr, SpreadMethod.PAD );

Written by am

November 24th, 2011 at 6:26 pm

Flashdevelop Installation

leave a comment

Flashdevelop ist eine sehr feine und außerdem auch noch kostenlose Entwicklungsumgebung für Flash (nicht mehr so hip) und aber auch Haxe (sehr interessant!)

Die Code Completion und Code Generation Features sparen viel Tipparbeit und der Outliner ermöglicht einen schnelle Überblick über Klassen. Das ist noch nicht alles … mehr Infos auf der offiziellen Website.

Für die Installation von Flashdevelop benötigt man:

Jetzt kann man unter Tools -> Install Software
installieren, was man braucht, Flex SDK, Git, Haxe etc.
Ich bin mir auch gar nicht sicher, ob man den Flash Player wirklich vorher schon installieren muss, hab es aber gemacht, weil ansonsten eine Warnung bei der FD Installation kommt.
So wie ich das sehe könnte man das jetzt auch noch über den AppMan (Install Software) installieren.development
Troubleshooting … sollte mit aktueller Installation nicht mehr nötig sein:
Unter Project -> Properties -> SDK muss der richtige Pfad zur SDK angelegt werden.
Wer wie ich unter Win7  x64 die Fehlermeldung “Unable to start java.exe” bekommt,
sollte die JAVA_HOME Umgebungsvariable ändern.
Viel Spass mit Flashdevelop!

Written by am

September 30th, 2011 at 7:07 am

Ruckelige Animation in Flash mit TweenLite ImageLoader

leave a comment

Flash hat einen Bug(?), der pixelsnapping immer aktiviert, wenn scaleX und scaleY == 1 sind.
Sieht bei langsamen Bewegungen extrem doof aus.

deswegen einfach scaleX = 1.001 und die Animation ist supersmooth!

Aus der Greensock-Doku:
Jerky animation? If you animate the image after loading it and you notice that the movement
* is rather jerky, try setting the scaleX and/or scaleY to something other than 1, like 1.001 because there is
* a bug in Flash that forces Bitmaps to always act like their pixelSnapping is "auto"
* when their scaleX/scaleY are 1.

Written by am

July 14th, 2011 at 9:34 am

AS3 Array Helferfunktionen shuffle, inArray

leave a comment

Leider fehlen der Array Funktion in AS3 manche sinnvolle Methoden, deswegen hier eine Klasse mit zwei Helferfunktionen, evtl. kommen noch mehr dazu.

package utils
{
/**
*
* am77.de
*/
public class ArrayUtils
{

public function ArrayUtils()
{

}

public static function shuffle(arr1:Array):Array {
var arr2:Array = [];
while (arr1.length > 0) {
arr2.push(arr1.splice(Math.round(Math.random() * (arr1.length - 1)), 1)[0]);

}
return arr2;

}

public static function inArray( needle:String, haystack:Array ):Boolean {
for( var a:int = 0; a < haystack.length; a++ ) { if( haystack[a] == needle ) { return true; }else if( haystack[a] is Array ) { return inArray(needle, haystack[a]); } } return false; } } }

Written by am

February 28th, 2011 at 1:01 pm

AS3 Font Unicode Range Generator

leave a comment

Um beim einbinden von Fonts in AS3 die Dateigröße des swf nicht unnötig aufzublasen, empfiehlt es sich, nur die wirklich benötigten Zeichen einzubinden.
Das ist per Angabe der unicodeRange möglich:

[Embed source="FONT_SOURCE", fontName="FONT_NAME", mimeType="application/x-font-truetype" unicodeRange = "U+0020-007E,U+00C4,U+00D6,U+00DC,U+00DF,U+00E1,U+00E4,U+00E8-00E9,U+00F6,U+00FC"]

Weil es recht mühselig sein kann, die ganzen “Uni-Codes” für die einzelnen Zeichen rauszusuchen, hab ich nach einem Tool gesucht und genau das richtige gefunden:

UnicodeRange Generator

Gibt´s übrigens auch zum Download

Written by am

February 26th, 2011 at 6:24 pm

AS3 Differenz zwischen zwei Date-Objekten

leave a comment

Um in AS3 die Differenz zwischen zwei Date-Objekten zu berechnen, addiert/subtrahiert man deren Millisekunden-Timestamp seit Beginn der Unix-Epoche (Januar 1 1970 00:00:00 GMT) (aufrufbar mit Date.time) und erstellt aus dem Ergebnis ein neues Date-Objekt.


var d1:Date = new Date(0, 0, 0, 0, 0, 20, 19);
var d2:Date = new Date(0, 0, 0, 0, 0, 1, 12);
var d3:Date = new Date(d1.time - d2.time);

trace( d3.seconds, d3.milliseconds); //Differenz in Sekunden und Millisekunden

Written by am

February 22nd, 2011 at 3:07 pm

Posted in Flash/ActionScript,snippets

Tagged with , , ,

Flash Debugging mit FBTracer

leave a comment

Für das debuggen in Live-Umgebung ist FBTracer wirklich super.

Es arbeitet mit Firebug zusammen, wo ein neues Tab “Flashtracer” erstellt wird, wo man alle trace-Ausgaben des swf´s direkt im Browser verfolgen kann.

Prädikat: Sehr praktisch!

Written by am

February 19th, 2011 at 1:04 pm

Posted in Flash/ActionScript,Tipp

Tagged with , , ,

AS3 Flashvars auslesen

leave a comment

Flashvars in AS3 auslesen

var params:Object = LoaderInfo(this.root.loaderInfo).parameters;
for (key in params) {
trace( String(params[key]) );
}

Written by am

February 8th, 2011 at 11:32 am

AS3 Flash Embed Stuff

leave a comment

Embed Stuff in Flashdevelop:

SWF
[Embed(source="library.swf", symbol="MyMc")]
protected const MyMc:Class;
[...]
var myMc:MovieClip = new MyMc();

FONT
[Embed(source = 'assets/LT_54856.ttf', fontName = "BasicCommercial LT Black", mimeType="application/x-font", embedAsCFF = "false")]
protected const fontBasicCommercial:Class;
[...]
var myFormat:TextFormat= new TextFormat();
myFormat.font = (new fontBasicCommercial() as Font).fontName;

BITMAP
[Embed(source="my_image.jpg")]
protected const MyImage:Class;
[...]
var img:Bitmap = new MyImage();

XML
[Embed(source="my_xml.xml", mimeType="text/xml")]
protected const MyXML:Class;
[...]
var x:XML = XML(new MyXML());

Written by am

November 17th, 2010 at 8:47 am