From a3c2ff6eeaaa2c5d0b717aa5a2377ebcc9991e33 Mon Sep 17 00:00:00 2001 From: Daniel Gasienica Date: Wed, 9 Sep 2009 13:43:34 +0200 Subject: [PATCH] Fixed bug with MultiScaleImage::source property. --- CHANGELOG.txt | 6 ++++- .../flash/components/MultiScaleImage.as | 21 +++++++++--------- .../flex/components/MultiScaleImage.as | 22 ++++++++----------- 3 files changed, 24 insertions(+), 25 deletions(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index b40943d6..918af323 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -1,8 +1,12 @@ +- Fixed bug in MultiScaleImage component for both Flash and Flex where setting + the source property with the same value twice caused the image to disappear. + -- Thanks to Claudius for reporting this. + Version 0.4.2.1 - September 4, 2009 =================================== - Fixed bug "#1004: Namespace was not found or is not a compile-time constant" - which occurred in Flash CS3. + which occurred in Flash CS3. -- Thanks to Nigel for reporting this. - Fixed bug in MultiScaleImageBase::scale getter. diff --git a/src/org/openzoom/flash/components/MultiScaleImage.as b/src/org/openzoom/flash/components/MultiScaleImage.as index e2fa7458..d25fbe50 100644 --- a/src/org/openzoom/flash/components/MultiScaleImage.as +++ b/src/org/openzoom/flash/components/MultiScaleImage.as @@ -140,13 +140,6 @@ public final class MultiScaleImage extends MultiScaleImageBase public function set source(value:Object):void { - if (_source) - { - _source = null - container.removeChildAt(0) - viewport.showAll(true) - } - if (value is String) { if (String(value) === url) @@ -169,6 +162,14 @@ public final class MultiScaleImage extends MultiScaleImageBase urlLoader_securityErrorHandler, false, 0, true ) } + + if (_source) + { + _source = null + + if (container.numChildren > 0) + container.removeChildAt(0) + } if (value is IImagePyramidDescriptor) { @@ -213,6 +214,7 @@ public final class MultiScaleImage extends MultiScaleImageBase sceneHeight) container.addChild(image) + container.showAll(true) dispatchEvent(new Event(Event.COMPLETE)) } @@ -249,10 +251,7 @@ public final class MultiScaleImage extends MultiScaleImageBase ImagePyramidDescriptorFactory.getInstance() var descriptor:IImagePyramidDescriptor = factory.getDescriptor(url, data) - _source = descriptor - addImage(descriptor) - - viewport.showAll(true) + source = descriptor } /** diff --git a/src/org/openzoom/flex/components/MultiScaleImage.as b/src/org/openzoom/flex/components/MultiScaleImage.as index 62e3769e..fdb68d5f 100644 --- a/src/org/openzoom/flex/components/MultiScaleImage.as +++ b/src/org/openzoom/flex/components/MultiScaleImage.as @@ -141,14 +141,6 @@ public final class MultiScaleImage extends MultiScaleImageBase public function set source(value:Object):void { - if (_source) - { - _source = null - - if (container.numChildren > 0) - container.removeChildAt(0) - } - if (value is String) { if (url == String(value)) @@ -167,6 +159,14 @@ public final class MultiScaleImage extends MultiScaleImageBase urlLoader_securityErrorHandler, false, 0, true) } + + if (_source) + { + _source = null + + if (container.numChildren > 0) + container.removeChildAt(0) + } if (value is IImagePyramidDescriptor) { @@ -215,7 +215,6 @@ public final class MultiScaleImage extends MultiScaleImageBase container.addChild(image) container.showAll(true) - dispatchEvent(new Event(Event.COMPLETE)) } @@ -240,10 +239,7 @@ public final class MultiScaleImage extends MultiScaleImageBase var descriptor:IImagePyramidDescriptor = factory.getDescriptor(url, data) - _source = descriptor - dispatchEvent(new Event("sourceChanged")) - - addImage(descriptor) + source = descriptor } /**