fixes
This commit is contained in:
@@ -38,5 +38,6 @@ class Root {
|
|||||||
var content:DisplayObject = view.content;
|
var content:DisplayObject = view.content;
|
||||||
view.width = content.stage.stageWidth;
|
view.width = content.stage.stageWidth;
|
||||||
view.height = content.stage.stageHeight;
|
view.height = content.stage.stageHeight;
|
||||||
|
//L.d("Screen", content.stage.stageWidth + "x" + content.stage.stageHeight);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -171,15 +171,15 @@ class TextView extends SpriteView implements ITextView<Sprite, TextField> {
|
|||||||
} else {
|
} else {
|
||||||
textField.x = switch (layoutHAlign) {
|
textField.x = switch (layoutHAlign) {
|
||||||
case HAlign.NONE: 0;
|
case HAlign.NONE: 0;
|
||||||
case HAlign.LEFT: 0;
|
case HAlign.LEFT: paddings;
|
||||||
case HAlign.CENTER: (width - textField.width) / 2;
|
case HAlign.CENTER: (width - textField.width) / 2;
|
||||||
case HAlign.RIGHT: width - textField.width;
|
case HAlign.RIGHT: width - textField.width - paddings;
|
||||||
}
|
}
|
||||||
textField.y = switch (layoutVAlign) {
|
textField.y = switch (layoutVAlign) {
|
||||||
case VAlign.NONE: 0;
|
case VAlign.NONE: 0;
|
||||||
case VAlign.TOP: 0;
|
case VAlign.TOP: paddings;
|
||||||
case VAlign.MIDDLE: (height - textField.height) / 2;
|
case VAlign.MIDDLE: (height - textField.height) / 2;
|
||||||
case VAlign.BOTTOM: height - textField.height;
|
case VAlign.BOTTOM: height - textField.height - paddings;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package haxework.gui.skin;
|
package haxework.gui.skin;
|
||||||
|
|
||||||
|
import haxework.gui.utils.BitmapUtil;
|
||||||
import haxework.gui.utils.DrawUtil;
|
import haxework.gui.utils.DrawUtil;
|
||||||
import flash.geom.Rectangle;
|
import flash.geom.Rectangle;
|
||||||
import flash.display.BitmapData;
|
import flash.display.BitmapData;
|
||||||
@@ -21,8 +22,9 @@ class ButtonBitmapSkin implements ISkin<Sprite, ButtonView> implements ISize {
|
|||||||
public var downImage(null, set):BitmapData;
|
public var downImage(null, set):BitmapData;
|
||||||
|
|
||||||
private var images:Map<ButtonState, BitmapData>;
|
private var images:Map<ButtonState, BitmapData>;
|
||||||
|
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<ButtonState, BitmapData>();
|
images = new Map<ButtonState, BitmapData>();
|
||||||
if (image != null) {
|
if (image != null) {
|
||||||
this.image = image;
|
this.image = image;
|
||||||
@@ -35,9 +37,9 @@ class ButtonBitmapSkin implements ISkin<Sprite, ButtonView> implements ISize {
|
|||||||
width = value.width;
|
width = value.width;
|
||||||
height = value.height;
|
height = value.height;
|
||||||
images.set(ButtonState.UP, value);
|
images.set(ButtonState.UP, value);
|
||||||
images.set(ButtonState.DOWN, value);
|
images.set(ButtonState.DOWN, BitmapUtil.multiply(value, 0.8));
|
||||||
images.set(ButtonState.OVER, value);
|
images.set(ButtonState.OVER, BitmapUtil.multiply(value, 1.2));
|
||||||
//images.set(ButtonState.DISABLE, value);
|
disable = BitmapUtil.grayscale(value, 0.2);
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -60,7 +62,7 @@ class ButtonBitmapSkin implements ISkin<Sprite, ButtonView> implements ISize {
|
|||||||
|
|
||||||
public function draw(view:ButtonView):Void {
|
public function draw(view:ButtonView):Void {
|
||||||
if (images == null) return;
|
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);
|
DrawUtil.draw(view.content.graphics, image, new Rectangle(0, 0, view.width, view.height), fillType, color);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
28
haxework/gui/utils/BitmapUtil.hx
Executable file
28
haxework/gui/utils/BitmapUtil.hx
Executable file
@@ -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<Float> = [];
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -5,7 +5,7 @@ import flash.geom.Rectangle;
|
|||||||
import flash.display.BitmapData;
|
import flash.display.BitmapData;
|
||||||
import flash.display.Graphics;
|
import flash.display.Graphics;
|
||||||
|
|
||||||
enum FillType {
|
@:fakeEnum(String) enum FillType {
|
||||||
NONE;
|
NONE;
|
||||||
DEFAULT;
|
DEFAULT;
|
||||||
COVER;
|
COVER;
|
||||||
|
|||||||
@@ -43,19 +43,19 @@ class BaseMediaLoader<T> extends BaseLoader<T> {
|
|||||||
override private function internalRequest(url:String):Void {
|
override private function internalRequest(url:String):Void {
|
||||||
cockTimeout();
|
cockTimeout();
|
||||||
loader = buildLoader();
|
loader = buildLoader();
|
||||||
loader.load(new URLRequest(url), buildLoaderContext());
|
loader.load(new URLRequest(url), buildLoaderContext(false));
|
||||||
}
|
}
|
||||||
|
|
||||||
override private function internalFromBytes(data:ByteArray):Void {
|
override private function internalFromBytes(data:ByteArray):Void {
|
||||||
loader = buildLoader();
|
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) {
|
return switch (Security.sandboxType) {
|
||||||
case Security.REMOTE:
|
case Security.REMOTE:
|
||||||
//null;
|
//null;
|
||||||
new LoaderContext(true, ApplicationDomain.currentDomain, SecurityDomain.currentDomain);
|
bytes ? null : new LoaderContext(true, ApplicationDomain.currentDomain, SecurityDomain.currentDomain);
|
||||||
case Security.APPLICATION:
|
case Security.APPLICATION:
|
||||||
var loaderContext:LoaderContext = new LoaderContext();
|
var loaderContext:LoaderContext = new LoaderContext();
|
||||||
loaderContext.allowLoadBytesCodeExecution = true;
|
loaderContext.allowLoadBytesCodeExecution = true;
|
||||||
|
|||||||
@@ -16,9 +16,9 @@ class UrlUtil {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function parseParamsDynamic(url:String):Dynamic {
|
public static function parseParamsDynamic(url:String, ?delimiter:String = "?"):Dynamic {
|
||||||
var result: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) {
|
if (tmp != null) {
|
||||||
var tmpArr:Array<String> = tmp.split("&");
|
var tmpArr:Array<String> = tmp.split("&");
|
||||||
for (item in tmpArr) {
|
for (item in tmpArr) {
|
||||||
|
|||||||
Reference in New Issue
Block a user