From 6d9b35abd6a2fba75c78c540f09c5eb2f980054e Mon Sep 17 00:00:00 2001 From: shmyga Date: Thu, 27 Feb 2014 09:13:39 +0400 Subject: [PATCH] fixes --- haxework/gui/Root.hx | 1 + haxework/gui/TextView.hx | 8 ++++---- haxework/gui/skin/ButtonBitmapSkin.hx | 12 +++++++----- haxework/gui/utils/BitmapUtil.hx | 28 +++++++++++++++++++++++++++ haxework/gui/utils/DrawUtil.hx | 2 +- haxework/net/BaseMediaLoader.hx | 8 ++++---- haxework/utils/UrlUtil.hx | 4 ++-- 7 files changed, 47 insertions(+), 16 deletions(-) create mode 100755 haxework/gui/utils/BitmapUtil.hx diff --git a/haxework/gui/Root.hx b/haxework/gui/Root.hx index 64ff7c0..8cfb6ad 100755 --- a/haxework/gui/Root.hx +++ b/haxework/gui/Root.hx @@ -38,5 +38,6 @@ class Root { var content:DisplayObject = view.content; view.width = content.stage.stageWidth; view.height = content.stage.stageHeight; + //L.d("Screen", content.stage.stageWidth + "x" + content.stage.stageHeight); } } diff --git a/haxework/gui/TextView.hx b/haxework/gui/TextView.hx index 2706a51..84e8260 100755 --- a/haxework/gui/TextView.hx +++ b/haxework/gui/TextView.hx @@ -171,15 +171,15 @@ class TextView extends SpriteView implements ITextView { } else { textField.x = switch (layoutHAlign) { case HAlign.NONE: 0; - case HAlign.LEFT: 0; + case HAlign.LEFT: paddings; case HAlign.CENTER: (width - textField.width) / 2; - case HAlign.RIGHT: width - textField.width; + case HAlign.RIGHT: width - textField.width - paddings; } textField.y = switch (layoutVAlign) { case VAlign.NONE: 0; - case VAlign.TOP: 0; + case VAlign.TOP: paddings; case VAlign.MIDDLE: (height - textField.height) / 2; - case VAlign.BOTTOM: height - textField.height; + case VAlign.BOTTOM: height - textField.height - paddings; } } } diff --git a/haxework/gui/skin/ButtonBitmapSkin.hx b/haxework/gui/skin/ButtonBitmapSkin.hx index c4ac311..6d2cb79 100755 --- a/haxework/gui/skin/ButtonBitmapSkin.hx +++ b/haxework/gui/skin/ButtonBitmapSkin.hx @@ -1,5 +1,6 @@ package haxework.gui.skin; +import haxework.gui.utils.BitmapUtil; import haxework.gui.utils.DrawUtil; import flash.geom.Rectangle; import flash.display.BitmapData; @@ -21,8 +22,9 @@ class ButtonBitmapSkin implements ISkin implements ISize { public var downImage(null, set):BitmapData; private var images:Map; + private var disable:BitmapData; - public function new(?image:BitmapData = null, ?fillType = null, ?color = -1) { + public function new(?image:BitmapData = null, ?fillType:FillType = null, ?color = -1) { images = new Map(); if (image != null) { this.image = image; @@ -35,9 +37,9 @@ class ButtonBitmapSkin implements ISkin implements ISize { width = value.width; height = value.height; images.set(ButtonState.UP, value); - images.set(ButtonState.DOWN, value); - images.set(ButtonState.OVER, value); - //images.set(ButtonState.DISABLE, value); + images.set(ButtonState.DOWN, BitmapUtil.multiply(value, 0.8)); + images.set(ButtonState.OVER, BitmapUtil.multiply(value, 1.2)); + disable = BitmapUtil.grayscale(value, 0.2); return value; } @@ -60,7 +62,7 @@ class ButtonBitmapSkin implements ISkin implements ISize { public function draw(view:ButtonView):Void { if (images == null) return; - var image:BitmapData = images.get(view.state); + var image:BitmapData = view.disabled ? disable : images.get(view.state); DrawUtil.draw(view.content.graphics, image, new Rectangle(0, 0, view.width, view.height), fillType, color); } diff --git a/haxework/gui/utils/BitmapUtil.hx b/haxework/gui/utils/BitmapUtil.hx new file mode 100755 index 0000000..83a2960 --- /dev/null +++ b/haxework/gui/utils/BitmapUtil.hx @@ -0,0 +1,28 @@ +package haxework.gui.utils; + +import flash.geom.Point; +import flash.filters.ColorMatrixFilter; +import flash.geom.ColorTransform; +import flash.display.BitmapData; + +class BitmapUtil { + + public static function multiply(image:BitmapData, m:Float):BitmapData { + var ct:ColorTransform = new ColorTransform(m, m, m, 1.0, 0, 0, 0); + var out:BitmapData = image.clone(); + out.colorTransform(out.rect, ct); + return out; + } + + public static function grayscale(image:BitmapData, m:Float):BitmapData { + var matrix:Array = []; + matrix = matrix.concat([m, m, m, 0, 0]); + matrix = matrix.concat([m, m, m, 0, 0]); + matrix = matrix.concat([m, m, m, 0, 0]); + matrix = matrix.concat([0, 0, 0, 1, 0]); + var cmf:ColorMatrixFilter = new ColorMatrixFilter(matrix); + var out:BitmapData = image.clone(); + out.applyFilter(out, out.rect, new Point(0,0), cmf); + return out; + } +} \ No newline at end of file diff --git a/haxework/gui/utils/DrawUtil.hx b/haxework/gui/utils/DrawUtil.hx index a7cbaf9..02d8e0e 100755 --- a/haxework/gui/utils/DrawUtil.hx +++ b/haxework/gui/utils/DrawUtil.hx @@ -5,7 +5,7 @@ import flash.geom.Rectangle; import flash.display.BitmapData; import flash.display.Graphics; -enum FillType { +@:fakeEnum(String) enum FillType { NONE; DEFAULT; COVER; diff --git a/haxework/net/BaseMediaLoader.hx b/haxework/net/BaseMediaLoader.hx index 6be5914..f995244 100755 --- a/haxework/net/BaseMediaLoader.hx +++ b/haxework/net/BaseMediaLoader.hx @@ -43,19 +43,19 @@ class BaseMediaLoader extends BaseLoader { override private function internalRequest(url:String):Void { cockTimeout(); loader = buildLoader(); - loader.load(new URLRequest(url), buildLoaderContext()); + loader.load(new URLRequest(url), buildLoaderContext(false)); } override private function internalFromBytes(data:ByteArray):Void { loader = buildLoader(); - loader.loadBytes(data, buildLoaderContext()); + loader.loadBytes(data, buildLoaderContext(true)); } - private function buildLoaderContext():LoaderContext { + private function buildLoaderContext(bytes:Bool):LoaderContext { return switch (Security.sandboxType) { case Security.REMOTE: //null; - new LoaderContext(true, ApplicationDomain.currentDomain, SecurityDomain.currentDomain); + bytes ? null : new LoaderContext(true, ApplicationDomain.currentDomain, SecurityDomain.currentDomain); case Security.APPLICATION: var loaderContext:LoaderContext = new LoaderContext(); loaderContext.allowLoadBytesCodeExecution = true; diff --git a/haxework/utils/UrlUtil.hx b/haxework/utils/UrlUtil.hx index c769997..f4a623f 100755 --- a/haxework/utils/UrlUtil.hx +++ b/haxework/utils/UrlUtil.hx @@ -16,9 +16,9 @@ class UrlUtil { return result; } - public static function parseParamsDynamic(url:String):Dynamic { + public static function parseParamsDynamic(url:String, ?delimiter:String = "?"):Dynamic { var result:Dynamic = {} - var tmp:String = url == null ? null : url.split("?")[1]; + var tmp:String = url == null ? null : delimiter == "" ? url : url.split(delimiter)[1]; if (tmp != null) { var tmpArr:Array = tmp.split("&"); for (item in tmpArr) {