// forked from paq's Adobe Kularでカラフルに染め上げてみるテスト02 // forked from paq's Adobe Kularでカラフルに染め上げてみるテスト01 // forked from paq's 何かと便利な基本体 package { import flash.display.*; import org.libspark.thread.Thread; import org.libspark.thread.EnterFrameThreadExecutor; [ SWF( width = "465" , height = "465" , backgroundColor = "0xFFFFFF" , frameRate = "48" ) ] public class Main extends Sprite{ public function Main():void { Thread.initialize(new EnterFrameThreadExecutor()); var main:MainThread = new MainThread(this); main.start(); } } } //------------------------------------------------------------- //MainThread //そうめん処理クラス //------------------------------------------------------------- import flash.display.*; import flash.text.*; import flash.net.*; import org.libspark.thread.Thread; import org.libspark.thread.threads.tweener.TweenerThread; import org.libspark.thread.utils.*; import org.libspark.thread.threads.net.URLLoaderThread; internal class MainThread extends Thread { public function MainThread(layer:DisplayObjectContainer) { _layer = layer; } private var _layer:DisplayObjectContainer; private var _shape:DisplayObject; private var _loaders:URLLoaderThread; private var colorXML:XML; private var swatchList:Array; private var swatchSprite:Sprite = new Sprite(); private var textFields:TextField; //初期処理 override protected function run():void { var txtFmt:TextFormat = new TextFormat(); txtFmt.font="Arial" txtFmt.align = TextFormatAlign.CENTER; txtFmt.color="0x000000" txtFmt.size=30 textFields = new TextField(); textFields.defaultTextFormat = txtFmt; textFields.multiline=true; textFields.autoSize=TextFieldAutoSize.LEFT; textFields.x = 0; textFields.y = 100; _layer.addChild(swatchSprite); _layer.addChild(textFields); _loaders = new URLLoaderThread( new URLRequest("http://kuler.adobe.com/kuler/services/theme/getList.cfm?listtype=random") ); _loaders.start(); _loaders.join(); next(loadComplete) } //終了処理 特に行われるないと思う。 protected override function finalize():void { _loaders = null; } //ロード完了 private function loadComplete():void { //XML・色取得 colorXML = new XML(_loaders.loader.data); next(setSwatches); } //スウォッチ描画 private function setSwatches():void { textFields.text=getSwatches(); var g:Graphics = swatchSprite.graphics; g.clear(); g.beginFill (swatchList[0], 1.0); g.drawRect ( 0, 0 , 465/5 , 465); g.beginFill (swatchList[1], 1.0); g.drawRect ( 93, 0 , 465/5 , 465); g.beginFill (swatchList[2], 1.0); g.drawRect ( 186, 0 , 465/5 , 465); g.beginFill (swatchList[3], 1.0); g.drawRect ( 279, 0 , 465/5 , 465); g.beginFill (swatchList[4], 1.0); g.drawRect ( 372, 0 , 465/5 , 465); sleep(5000); next(setSwatches); } //スウォッチ取得 private function getSwatches():String { swatchList = new Array(); var allSwatchesCount:uint = colorXML..swatches.length(); var rand:Number = Math.random()*allSwatchesCount>>0; var targetSwatches:XML = colorXML..swatches[rand]; var r:uint; var g:uint; var b:uint; for each(var swatch:XML in targetSwatches.swatch){ r = swatch.c1*0xFF >> 0; g = swatch.c2*0xFF >> 0; b = swatch.c2*0xFF >> 0; var color:uint = r << 16 | g << 8 | b; swatchList.push(color); } return colorXML..theme[rand].label[0]; } } Adobe Kularでカラフルに染め上げてみるテスト03(そうめんにしてみた)