Uploaded image for project: 'Apache Flex'
  1. Apache Flex
  2. FLEX-20688

When using Graphics on Drag Drop an index out of bounds error is thrown.

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Minor
    • Resolution: Fixed
    • Adobe Flex SDK 4.1 (Release)
    • None
    • Drag and Drop
    • None
    • Affected OS(s): Mac
      Affected OS(s): Mac - All Macs
      Browser: Firefox 3.x
      Language Found: English

    Description

      Steps to reproduce:
      1. Compile and run test case (I tested on a Mac 10.5) with Beta 1 Flex Builder 4
      2. It will throw the runtime error below.
      3. I have provided a fix attached as DragManagerImpl.as

      Actual Results:
      [SWF] Users:kmossman:Documents:DragDropExample:bin-debug:DragDropExample.swf - 1,585,804 bytes after decompression
      RangeError: Error #2006: The supplied index is out of bounds.
      at flash.display::DisplayObjectContainer/getChildAt()
      at mx.core::UIComponent/removeChildAt()[E:\dev\beta1\frameworks\projects\framework\src\mx\core\UIComponent.as:6133]
      at mx.managers::DragManagerImpl/endDrag()[E:\dev\beta1\frameworks\projects\framework\src\mx\managers\DragManagerImpl.as:456]
      at mx.managers::DragManager$/http://www.adobe.com/2006/flex/mx/internal::endDrag()[E:\dev\beta1\frameworks\projects\framework\src\mx\managers\DragManager.as:366]
      at mx.managers.dragClasses::DragProxy/effectEndHandler()[E:\dev\beta1\frameworks\projects\framework\src\mx\managers\dragClasses\DragProxy.as:667]
      at flash.events::EventDispatcher/dispatchEventFunction()
      at flash.events::EventDispatcher/dispatchEvent()
      at mx.effects::Effect/effectEndHandler()[E:\dev\beta1\frameworks\projects\framework\src\mx\effects\Effect.as:1804]
      at flash.events::EventDispatcher/dispatchEventFunction()
      at flash.events::EventDispatcher/dispatchEvent()
      at mx.effects::EffectInstance/finishEffect()[E:\dev\beta1\frameworks\projects\framework\src\mx\effects\EffectInstance.as:789]
      at mx.effects::EffectInstance/finishRepeat()[E:\dev\beta1\frameworks\projects\framework\src\mx\effects\EffectInstance.as:833]
      at mx.effects.effectClasses::TweenEffectInstance/onTweenEnd()[E:\dev\beta1\frameworks\projects\framework\src\mx\effects\effectClasses\TweenEffectInstance.as:435]
      at mx.effects.effectClasses::MoveInstance/onTweenEnd()[E:\dev\beta1\frameworks\projects\framework\src\mx\effects\effectClasses\MoveInstance.as:458]
      at mx.effects::Tween/endTween()[E:\dev\beta1\frameworks\projects\framework\src\mx\effects\Tween.as:566]
      at mx.effects::Tween/http://www.adobe.com/2006/flex/mx/internal::doInterval()[E:\dev\beta1\frameworks\projects\framework\src\mx\effects\Tween.as:607]
      at mx.effects::Tween$/timerHandler()[E:\dev\beta1\frameworks\projects\framework\src\mx\effects\Tween.as:191]
      at flash.utils::Timer/_timerDispatch()
      at flash.utils::Timer/tick()

      Expected Results:

      No Error.

      Workaround (if any):

      Within mx.managers.DragManagerImpl.as simply add a check to see if dragProxy has children before we attempt to remove it. Adding this check resolves the issue.

      if(dragProxy.numChildren)

      { dragProxy.removeChildAt(0); // The drag image is the only child dragProxy = null; }

      Attachments

        Activity

          People

            adobejira Adobe JIRA
            adobejira Adobe JIRA
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: