Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
Adobe Flex SDK 4.1 (Release)
-
None
-
None
-
Affected OS(s): All OS Platforms
Language Found: English
Description
Found in Flex 4.1.0.15465
Steps to reproduce:
1. Compile and run attached MXML file.
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
width="400" height="400">
<fx:Declarations>
<s:CrossFade id="e_CrossFade" target="
"/>
</fx:Declarations>
<s:Button id="button" width="300" height="300"
label="Click Repeatedly to Crash" click="e_CrossFade.play();"/>
</s:Application>
2. Click the button a few times (slowly). It's all good, y'all.
3. Double click the button to cause the effect to run again while already running.
Actual Results:
ArgumentError: Error #2015: Invalid BitmapData.
at flash.display::DisplayObject/set filters()
at mx.core::UIComponent/set filters()[E:\dev\trunk\frameworks\projects\framework\src\mx\core\UIComponent.as:3346]
at spark.effects.supportClasses::AnimateTransitionShaderInstance/setValue()[E:\dev\trunk\frameworks\projects\spark\src\spark\effects\supportClasses\AnimateTransitionShaderInstance.as:361]
at spark.effects.supportClasses::AnimateInstance/applyValues()[E:\dev\trunk\frameworks\projects\spark\src\spark\effects\supportClasses\AnimateInstance.as:510]
at spark.effects.supportClasses::AnimateInstance/animationUpdate()[E:\dev\trunk\frameworks\projects\spark\src\spark\effects\supportClasses\AnimateInstance.as:669]
at spark.effects.animation::Animation/sendUpdateEvent()[E:\dev\trunk\frameworks\projects\spark\src\spark\effects\animation\Animation.as:816]
at spark.effects.animation::Animation/doInterval()[E:\dev\trunk\frameworks\projects\spark\src\spark\effects\animation\Animation.as:796]
at spark.effects.animation::Animation$/timerHandler()[E:\dev\trunk\frameworks\projects\spark\src\spark\effects\animation\Animation.as:688]
at flash.utils::Timer/_timerDispatch()
at flash.utils::Timer/tick()
Expected Results:
No RTE.
Workaround (if any):
Check to see if the effect is already playing before trying to play it again (weaksauce):
<s:Button id="button" width="300" height="300"
label="Click Repeatedly to Crash" click="if (!e_CrossFade.isPlaying) e_CrossFade.play();"/>