Legacy Display LegacyDisplay @author Test Dept Test_Dept forked:4favorite:12lines:125license : MIT License modified : 2011-03-03 23:40:31 Embed Tweet package { import flash.display.Graphics; import flash.display.Sprite; import flash.events.Event; /** * LegacyDisplay * @author Test Dept */ [SWF(backgroundColor="#cccccc", width="465", height="465", frameRate="12")] public class LegacyDisplay extends Sprite { public function LegacyDisplay() { var color : uint = 0xff0000; var hiColor : uint = color; var loColor : uint = getDarkColor(hiColor, 0.25); var patterns1 : Array = [ "a", "b", "g", "e", "d", "c", "g", "f", "a", ".", "abcdefg.", "" ]; var index1 : int = 0; var patterns2 : Array = [ "abcdef", "bc", "abdeg", "abcdg", "bcfg", "acdfg", "acdefg", "abc", "abcdefg", "abcdfg" ]; var index2 : int = 0; addEventListener(Event.ENTER_FRAME, function(event : Event) : void { var g : Graphics = graphics; g.clear(); var pattern1 : String = patterns1[index1]; index1 = (index1 + 1) % patterns1.length; var pattern2 : String = patterns2[index2]; index2 = (index2 + 1) % patterns2.length; LEDUtil.draw7Segments(g, pattern1, 10, 10, 200, 0, hiColor, loColor, 0x000000); LEDUtil.draw7Segments(g, pattern2, 215, 10, 200, 0, hiColor, loColor, 0x000000); } ); } private static function getDarkColor(color : uint, scale : Number) : uint { var r : uint = (color >>> 16) & 0xff; var g : uint = (color >>> 8) & 0xff; var b : uint = color & 0xff; r = (r * scale) & 0xff; g = (g * scale) & 0xff; b = (b * scale) & 0xff; return (r << 16) | (g << 8) | b; } } } import flash.display.Graphics; /* [Segments] a f b g e c d . [Digit Patterns] 0: abcdef 1: bc 2: abdeg 3: abcdg 4: bcfg 5: acdfg 6: acdefg 7: abc 8: abcdefg 9: abcdfg -: g */ class LEDUtil { public static function draw7Segments( g : Graphics, pattern : String, x : Number, y : Number, width : Number, height : Number, hiColor : uint, loColor : uint, bgColor : uint ) : void { // auto size if (width <= 0) { width = height * 7 / 10; } else if (height <= 0) { height = width * 10 / 7; } g.beginFill(bgColor); g.drawRect(x, y, width, height); g.endFill(); var scale : Number = (width / height > _SEG_WIDTH / _SEG_HEIGHT)? height / _SEG_HEIGHT : width / _SEG_WIDTH; var cx : Number = x + (width - _SEG_WIDTH * scale) / 2; var cy : Number = y + (height - _SEG_HEIGHT * scale) / 2; var on : Boolean; for (var i : int = 0; i < _ALL_SEGMENTS.length; i++) { var c : String = _ALL_SEGMENTS.charAt(i); on = (pattern != null && pattern.indexOf(c) != -1); drawSegment(g, c, cx, cy, scale, on? hiColor : loColor); } on = (pattern != null && pattern.indexOf(".") != -1); drawPoint(g, cx, cy, scale, on? hiColor : loColor); } private static function drawSegment( g : Graphics, segment : String, x : Number, y : Number, scale : Number, color : uint ) : void { var data : Array = _segmentData[segment]; g.beginFill(color); var length : int = data.length / 2; for (var i : int = 0; i < length; i++) { var dx : Number = data[i * 2] * scale + x; var dy : Number = data[i * 2 + 1] * scale + y; if (i == 0) { g.moveTo(dx, dy); } else { g.lineTo(dx, dy); } } g.endFill(); } private static function drawPoint( g : Graphics, x : Number, y : Number, scale : Number, color : uint ) : void { g.beginFill(color); g.drawCircle(542 * scale + x, 840 * scale + y, 46 * scale); g.endFill(); } private static const _SEG_WIDTH : Number = 636; private static const _SEG_HEIGHT : Number = 1000; private static const _ALL_SEGMENTS : String = "abcdefg"; private static const _segmentData : Object = { 'a' : [575, 138, 494, 211, 249, 211, 194, 137, 213, 120, 559, 120], 'b' : [595, 160, 544, 452, 493, 500, 459, 456, 500, 220, 582, 146], 'c' : [525, 560, 476, 842, 465, 852, 401, 792, 441, 562, 491, 516], 'd' : [457, 860, 421, 892, 94, 892, 69, 864, 144, 801, 394, 801], 'e' : [181, 560, 141, 789, 61, 856, 48, 841, 96, 566, 148, 516], 'f' : [241, 218, 200, 453, 150, 500, 115, 454, 166, 162, 185, 145], 'g' : [485, 507, 433, 555, 190, 555, 156, 509, 204, 464, 451, 464] }; } Code Fullscreen Preview Fullscreen sazaam tjoen hacker_vun6d.. dizgid a24 fardeen zawa civet xor shevchenko matacat a440hlz : beautifl beautifl indexOf endFill beginFill charAt clear drawCircle drawRect String moveTo length lineTo Object Event.ENTER_FRAME Boolean Event Array uint int Number sort new page view favorite forked pv320 forked from: Legacy Display l.dijkman forked:0 favorite:2lines:125 (diff:5) pv124 forked from: Legacy Display ultranoir forked:0 favorite:1lines:125 (diff:1) pv234 forked from: Legacy Display Test_Dept forked:0 favorite:2lines:135 (diff:51) pv231 forked from: Legacy Display rainafter forked:0 favorite:0lines:174 (diff:2)