понедельник, 6 апреля 2009 г.

Пройти тест на скорость печати

Как быстро вы печатаете на клавиатуре? Владеете слепым методом?
Проверь свою скорость набора текста. Есть полезные советы и ссылки на бесплатные обучающие программы

Блог о flash технологиях. Разработке казуальных флэш игр и тд

Блог о flash технологиях. Есть всего понемногу: Исходники, советы, описания игровых порталов и их API

пятница, 2 мая 2008 г.

Queue

var ar=new Array();
ar.unshift(1);
ar.unshift(2);
trace(ar);

trace(ar.pop());
trace(ar.pop());

четверг, 24 апреля 2008 г.

Узанть URL страницы на котором запущена флэшка

var url:String = ExternalInterface.call ( "function() { return window.document.location.href }" );

четверг, 27 марта 2008 г.

пятница, 29 февраля 2008 г.

DataGrid cellRenerer для столбца

Поместить в первый кадр (На сцену перетащить компонет DataGrid обозвать dg, в либу поместить Button)
var sampleItem1:Object = { Name:"John Alpha",     Number:"555-123-0101", Email:"jalpha@fictitious.com" };
var sampleItem2:Object = { Name:"Mary Bravo", Number:"555-372-3322", Email:"mbravo@fictitious.com" };
var sampleItem3:Object = { Name:"Trevor Gamma", Number:"555-485-1212", Email:"tgamma@fictitious.com" };
var sampleItem4:Object = { Name:"Susan Delta", Number:"555-987-3434", Email:"sdelta@fictitious.com" };

//dg.setStyle('cellRenderer', MyRenderer);

dg.columns = ["Name", "Number", "Email"];

dg.addItem(sampleItem1);
dg.addItem(sampleItem2);
dg.addItem(sampleItem3);
dg.addItem(sampleItem4);
dg.addColumn("NewCol");
dg.getColumnAt(0).cellRenderer=MyRenderer;
dg.getColumnAt(1).cellRenderer=MyRenderer2;

MyRenderer.as:
package
{
import fl.controls.LabelButton;
import fl.controls.listClasses.ICellRenderer;
import fl.controls.listClasses.ListData;
import fl.containers.BaseScrollPane;

public class MyRenderer extends LabelButton implements ICellRenderer {
private var _listData:ListData;
private var _data:Object;

public function MyRenderer() {
}

public function set listData(newListData:ListData):void {
_listData = newListData;
label = "Random: " + _listData.label;
drawRandomColor();
}

private function drawRandomColor():void {
graphics.beginFill(Math.random()*0xFFFFFF);
graphics.drawRect(0,0,20,20);
graphics.endFill();
}

public function get listData():ListData {
return _listData;
}

public function set data(newData:Object):void {
_data = newData;
}

public function get data():Object {
return _data;
}
}
}

MyRenderer2.as:
package
{
import fl.controls.LabelButton;
import fl.controls.listClasses.ICellRenderer;
import fl.controls.listClasses.ListData;
import fl.containers.BaseScrollPane;
import flash.display.Sprite;
import flash.events.MouseEvent;

public class MyRenderer2 extends Sprite implements ICellRenderer {
private var _listData:ListData;
private var _data:Object;

public function MyRenderer2() {
this.graphics.lineStyle(1);
this.graphics.drawCircle(10, 10, 10);

this.addEventListener(MouseEvent.CLICK, mouseClickHandler);
}

private function mouseClickHandler(e:MouseEvent):void {
trace("cell clicked");
}

public function set listData(newListData:ListData):void {
_listData = newListData;
//label = "Random: " + _listData.label;
//drawRandomColor();
}

private function drawRandomColor():void {
graphics.beginFill(Math.random()*0xFFFFFF);
graphics.drawRect(0,0,20,20);
graphics.endFill();
}

public function get listData():ListData {
return _listData;
}

public function set data(newData:Object):void {
_data = newData;
}

public function get data():Object {
return _data;
}
public function get selected():Boolean {
return true;
}
public function set selected(value:Boolean):void {

}
public function setMouseState(state:String):void {
if (state == "over") { trace ("mouse Over") } ;
}
public function setSize(width:Number, height:Number):void {
this.width = width;
this.height = height;
}

public function setStyle(style:String, value:Object):void {

}

}
}

вторник, 26 февраля 2008 г.

Передача параметра EventHandler-у (хак от __etc)

Очень помог прием (хак) с функцией delegate

function resizeHandler(event:Event, ...rest):void {
trace(event, rest);
}
var delegate:Function = function(scope:Object, func:Function, ...rest):Function {
return function(...args):void {
func.apply(scope, args.concat(rest));
}
}
super.stage.addEventListener(Event.RESIZE, delegate(this, this.resizeHandler, 1, 2, 3));