вторник, 29 января 2008 г.

Представление компонентов в виде списка. Flex

Создать ItemVO.as с кодом:
package
{
import flash.events.IEventDispatcher;
import flash.events.EventDispatcher;
[Bindable]
public class ItemVO extends EventDispatcher
{
public var label : String;
public var checked : Boolean;
}
}


Создать CheckBoxItemRender.mxml с кодом:
<?xml version="1.0" encoding="utf-8"?>
<?xml:namespace prefix = mx /><mx:canvas height="20" width="100" mx="http://www.adobe.com/2006/mxml">
<mx:checkbox id="checker" change="{data.checked = checker.selected}" selected="{data.checked}" label="{data.label}"></mx:checkbox>
</mx:canvas>

Создать ComponentListTest.mxml с кодом:
<?xml version="1.0" encoding="utf-8"?>
<!-- Tree control example. -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:local="*" layout="vertical">
<mx:Script>
<![CDATA[
public function clearItems() : void
{
for (var i : Number=0; i<arcoltest.length; i++)
{
arcoltest.getItemAt(i).checked = false;
}
}
]]>
</mx:Script>
<mx:ArrayCollection id="arcoltest">
<local:ItemVO label="qewqw" checked="true" />
<local:ItemVO label="1" checked="true" />
<local:ItemVO label="2" checked="true" />
<local:ItemVO label="1231" checked="true" />
<local:ItemVO label="qweqwe" checked="true" />
</mx:ArrayCollection>
<mx:List dataProvider="{arcoltest}" itemRenderer="CheckBoxItemRender" />
<mx:Button label="Clear all" click="clearItems()"/>
</mx:Application>

пятница, 25 января 2008 г.

Обработчик события. MXML

Можно добавить обработчик события в скрипте:
video_playback.addEventListener(MouseEvent.MOUSE_OVER,this.onMouseOver);

Или прямо в теге:
<mx:videodisplay id="video_playback" height="302" width="697" y="74" x="37.5" autoplay="true" mouseover="onMouseOver(event);"></mx:videodisplay>

среда, 23 января 2008 г.

Класс Dictionary. AS3

Пример перебора элементов Dictionary:
import flash.utils.Dictionary;

var a:Object = new Object();
var b:Object = new Object();

var dict:Dictionary = new Dictionary();
dict[a] = 1; // dict[a] = 1;
dict[b] = 2; // dict[b] = 2;

for (var prop:* in dict) {
trace(prop); // traces: [object Object], [object Object]
trace(dict[prop]); // traces: 1, 2
}
Источник.

Удаление элемента из Dictionary:
delete dict[a];

пятница, 18 января 2008 г.

Код для статьи "Делаем прелоадер для Flex-приложения". AS3.

Код основного класса MainClass:
package {
import flash.display.Sprite;
import flash.display.Bitmap;

[Frame(factoryClass="MyFactory")]
public class FrameTest extends Sprite
{
[Embed(source="big_asset.jpg")]
private var Asset:Class;

public function FrameTest()
{
init();
}

public function init():void
{
var asset:Bitmap = new Asset();
addChild(asset);
}
}
}

Код класса фабрики MyFactoryClass:
package
{
import flash.display.DisplayObject;
import flash.display.MovieClip;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.events.Event;
import flash.utils.getDefinitionByName;

public class MyFactory extends MovieClip
{
public function MyFactory()
{
stop();
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
addEventListener(Event.ENTER_FRAME, onEnterFrame);
}

public function onEnterFrame(event:Event):void
{
graphics.clear();
if(framesLoaded == totalFrames)
{
removeEventListener(Event.ENTER_FRAME, onEnterFrame);
nextFrame();
init();
}
else
{
var percent:Number = root.loaderInfo.bytesLoaded / root.loaderInfo.bytesTotal;
graphics.beginFill(0);
graphics.drawRect(0, stage.stageHeight / 2 - 10,
stage.stageWidth * percent, 20);
graphics.endFill();
}
}

private function init():void
{
var mainClass:Class = Class(getDefinitionByName("FrameTest"));
if(mainClass)
{
var app:Object = new mainClass();
addChild(app as DisplayObject);
}
}
}
}