diff --git a/haxework/gui/IView.hx b/haxework/gui/IView.hx index c5e2075..dce23f8 100755 --- a/haxework/gui/IView.hx +++ b/haxework/gui/IView.hx @@ -60,4 +60,6 @@ interface IView { public function update():Void; public function invalidate():Void; + + public function remove():Void; } \ No newline at end of file diff --git a/haxework/gui/MovieView.hx b/haxework/gui/MovieView.hx index c90c558..21899f1 100755 --- a/haxework/gui/MovieView.hx +++ b/haxework/gui/MovieView.hx @@ -15,7 +15,15 @@ class MovieView extends View { } private function set_movie(value:MovieClip):MovieClip { + var index:Int = 0; + if (parent != null && content != null) { + index = parent.content.getChildIndex(content); + parent.content.removeChild(content); + } content = value; + if (parent != null) { + parent.content.addChildAt(content, index); + } invalidate(); return content; } diff --git a/haxework/gui/View.hx b/haxework/gui/View.hx index 2979016..d529236 100755 --- a/haxework/gui/View.hx +++ b/haxework/gui/View.hx @@ -95,6 +95,10 @@ class View implements IView { if (skin != null) skin.draw(this); } + public function remove():Void { + if (parent != null) parent.removeView(this); + } + private function set_x(value:Float):Float { if (x != value) { x = value; diff --git a/haxework/gui/list/ListView.hx b/haxework/gui/list/ListView.hx index 67e2cfe..87538ab 100755 --- a/haxework/gui/list/ListView.hx +++ b/haxework/gui/list/ListView.hx @@ -118,8 +118,9 @@ class ListView, D> extends GroupView implements ScrollListener public function onScroll(position:Float):Void { var x:Float = filteredData.length * position; - offset = Math.round(x) - 1; - offsetDiff = (x - offset); + var o:Int = Math.floor(x); + offsetDiff = (x - o); + offset = o; } private function onMouseWheelEvent(event:MouseEvent):Void { @@ -135,7 +136,7 @@ class ListView, D> extends GroupView implements ScrollListener if (filteredData != null) { //ToDo: constant for 2 if (value == 0) offsetDiff = 0; - if (value == filteredData.length - size + 2) offsetDiff = 3 - sizeDiff; + if (value == filteredData.length - size + 2) offsetDiff = sizeDiff - 2; } offset = value; render(); @@ -175,7 +176,7 @@ class ListView, D> extends GroupView implements ScrollListener if (data != null && renderer != null) { filteredData = filter == null ? data : data.filter(filter); scroll.ratio = Math.min(1.0, (size - sizeDiff) / filteredData.length); - scroll.position = (offset / filteredData.length); + scroll.position = ((offset + offsetDiff) / filteredData.length); for (i in 0...size) { var item:ListItem = items[i]; item.index = offset + i; diff --git a/haxework/net/BaseMediaLoader.hx b/haxework/net/BaseMediaLoader.hx index f995244..eb6272e 100755 --- a/haxework/net/BaseMediaLoader.hx +++ b/haxework/net/BaseMediaLoader.hx @@ -52,6 +52,7 @@ class BaseMediaLoader extends BaseLoader { } private function buildLoaderContext(bytes:Bool):LoaderContext { + #if flash return switch (Security.sandboxType) { case Security.REMOTE: //null; @@ -63,6 +64,9 @@ class BaseMediaLoader extends BaseLoader { default: null; } + #else + return null; + #end } private function buildLoader():Loader { @@ -83,7 +87,7 @@ class BaseMediaLoader extends BaseLoader { loader.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, onError); loader.contentLoaderInfo.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, onError); loader.contentLoaderInfo.removeEventListener(ProgressEvent.PROGRESS, onProgress); - try { loader.close(); } catch (error:Dynamic) {} + #if flash try { loader.close(); } catch (error:Dynamic) {} #end loader = null; } }