<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" initialize="init();" viewSourceURL="srcview/index.html"> <mx:Script> <![CDATA[ import flash.utils.getQualifiedClassName; import bitmaps.*; import mx.controls.Button; private var bitmapClasses:Array = [ B0, B1, B2 ]; private var index:int = 0; private function init():void { addSample(); addSample(); } private function addSample():void { if (container.numChildren == bitmapClasses.length) container.removeChildAt(0); var button:Button = new Button(); button.label = "Button with icon using cache class B" + index; button.setStyle("icon", getNextBitmapClass(getRandomBitmapData())); container.addChild(button); } private function getNextBitmapClass(bitmapData:BitmapData):Class { var bitmapClass:Class = bitmapClasses[index]; index = (index + 1) % bitmapClasses.length; RuntimeBitmapAsset.bitmapDatas[getQualifiedClassName(new bitmapClass())] = bitmapData; return bitmapClass; } private function getRandomBitmapData():BitmapData { var bitmapData:BitmapData = new BitmapData(16, 16, true, 0); var seed:Number = Math.floor(Math.random() * 10); var channels:uint = BitmapDataChannel.RED | BitmapDataChannel.BLUE; bitmapData.perlinNoise(100 * Math.random(), 100 * Math.random(), 10 * Math.random(), seed, false, true, channels, false, null); return bitmapData; } ]]> </mx:Script> <mx:ApplicationControlBar horizontalCenter="0" top="10"> <mx:Button label="Add Sample" click="addSample()"/> </mx:ApplicationControlBar> <mx:VBox id="container" horizontalCenter="0" verticalCenter="0"/> </mx:Application>