Archiv für die ‘AS3’ Kategorie

Array-length vs. XMLList-length

15 Februar 2010

Lächerlich. Um die Länge eines Arrays herauszubekommen, benutzt man:

var L:int = myArray.length

um die Länge einer XMLList herauszubekommen, sollte man lieber

var L:int = myXMLList.length()

benutzen. Da muss man erstmal draufkommen…

Fette gelbe Ränder beim Betätigen der Tab-Taste

15 Februar 2010

Flash stellt eine interne Funktionalität zu Verfügung: beim Betätigen der Tab-Taste werden fette gelbe Ränder um die Buttons gelegt. Deaktivieren mit:

	btn.tabEnabled = false;
	btn.focusRect = false;

“asfunction” in AS3

15 Februar 2010

Die Methodik mittels “asfunction” aus einem Textfeld eine interne Funktion aufzurufen, exisitiert in AS3 nicht mehr. Das funktioniert nun so:

 
var txtF:TextField = new TextField();
txtF.autoSize = TextFieldAutoSize.LEFT;
txtF.htmlText = 'Ein Testlink, klick mich <a href="event:1 2 3 4 ..."><u>jetzt</u></a>!';
addChild(txtF);
 
txtF.addEventListener(TextEvent.LINK,myLinkFunction);
 
function myLinkFunction(e:TextEvent):void {
    trace(e.text); 
}

UIscrollbar-komponente nach dazuladen von text ‘reseten’

11 Februar 2010

Nach dem dynamischen dazuladen eines Textes in ein Textfeld, welches mit einer UIScrollbar-Komponente gescrollt werden soll, bleibt der Srcollbalken an der zuletzt gescrollten Stelle stehen. Ich finde das ist ein Bug. Aber was solls. Dieses hier, fixt das:

myScrollBar.setScrollPosition(0);

Variable oder Funktion im root ansprechen

11 Februar 2010

willst du aus einem Movieclip eine Variable in root setzen

früher

 _root.myVar = true;

so geht das unter AS3:

MovieClip(root).myVar = true;

Image dynamisch aus der Library holen und im MoviecLip mittig positionieren

2 Februar 2010

Kann man ja immer mal gebrauchen…

	var tmp:String = "gfx" + picNumber;
	var classRef:Class = getDefinitionByName(tmp) as Class;
	var bitmapData:BitmapData = new classRef(0,0);
	var bmp:Bitmap = new Bitmap(bitmapData);
	bmp.smoothing = true;
	var tmp2:MovieClip = new MovieClip();
	tmp2.name="container1"
	tmp2.addChild(bmp);
	var sxx = tmp2.width/2;
	var syy = tmp2.height/2;
	var hgfx:MovieClip = new MovieClip();
	hgfx.addChild(tmp2);
	hgfx.getChildByName("container1").x -= sxx;
	hgfx.getChildByName("container1").y -= syy;
	hgfx.name = "container2";
	addChild(hgfx);

Droptarget und parent

2 Februar 2010

Nutzt man ein Shape oder ein Image aus der Library, erstellt Flash intern eine Instance, welche dann auch einen automatischen Namen (“instance2453″) erhält. Genau diese wird bei Droptarget zurückgegeben und nicht z.B. der Name des MovieClips, welchen das image/Shape enthält. Den Namen des Clips, mit welchem man arbeiten möchte, erhält man so:

function MouseHandler(e:MouseEvent):void {
	if (e.type=="mouseUp") {
		trace(e.target.dropTarget.parent.name);
	}
}

Textarea Komponente soll nicht anwählbar sein

29 Januar 2010

Ewig gesucht und nichts geunden. Selber rauskriegen rules!

Wer eine Textarea-Komponente benutzt und nicht möchte, das man den Text  kopieren oder auswählen kann  oder (was schlimmer ist)  das der Mauspfeil sich beim Drüberfahren in den “Strich” ändernt, nutzt diese zwei Zeilen:

myTexarea.textField.mouseEnabled = false;
myTexarea.textField.selectable = false;

Eigenes Contextmenü

29 Januar 2010

Ein eigenes Kontextmenü in Flash hat was. Einfach diesen Code in ein Frame kopieren:

var myMenu:ContextMenu = new ContextMenu();
myMenu.hideBuiltInItems();
 
var myNotice=new ContextMenuItem("MasterLevel 2010");
var myEmail=new ContextMenuItem("info@masterlevel.de");
var myCopyright=new ContextMenuItem("Copyright - 2010");
myCopyright.enabled=false;
myCopyright.separatorBefore=true;
function openLink(e:ContextMenuEvent):void {
	navigateToURL(new URLRequest("http://www.masterlevel.de"));
}
myNotice.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, openLink);
myMenu.customItems.push(myNotice, myEmail, myCopyright);
contextMenu=myMenu;