Skip to main content
Inspiring
July 18, 2017
Answered

Flash animation get struck and slow in iPad Air

  • July 18, 2017
  • 2 replies
  • 360 views

Dear All,

I have done an application through Adobe Air and it loads external .swf from server. It's working fine in iPad pro but it seems bit slow and struck in iPad Air. How can I fix this? Is there any solution? Please suggest.

Thanks,

Rajaguru.V

    This topic has been closed for replies.
    Correct answer kglad

    saying performance is adequate on one computing device (ipad pro) and not on a weaker one (ipad air) means your animation is not optimized or designed to work well on the weaker device.  improving coding and animation perfomance could fill a book.

    i devoted an entire chapter to optimizing performance in Flash Game Development: In a Social, Mobile and 3D World

    here's a snippet from that chapter:

    Optimization Techniques

    Unfortunately, I know of no completely satisfactory way to organize this information. In what follows, I discuss memory management first with sub-topics listed in alphabetical order. Then I discuss CPU/GPU management with sub-topics listed in alphabetical order.

    That may seem logical but there are, at least, two problems with that organization.

    1. I do not believe it is the most helpful way to organize this information.
    2. Memory management affects CPU/GPU usage, so everything in the Memory Management section could also be listed in the CPU/GPU section.

    Anyway, I am going to also list the information two other ways, from easiest to hardest to implement and from greatest to least benefit.

    Both of those later listings are subjective and are dependent on developer experience and capabilities, as well as, the test situation and test environment. I very much doubt there would be a consensus on ordering of these lists.  Nevertheless, I think they still are worthwhile.

    Easiest to Hardest to Implement

    1. Do not use Filters.
    2. Always use reverse for-loops and avoid do-loops and avoid while-loops.
    3. Explicitly stop Timers to ready them for gc (garbage collection).
    4. Use weak event listeners and remove listeners.
    5. Strictly type variables whenever possible.
    6. Explicitly disable mouse interactivity when mouse interactivity not needed.
    7. Replace dispatchEvents with callback functions whenever possible.
    8. Stop Sounds to enable Sounds and SoundChannels to be gc'd.
    9. Use the most basic DisplayObject needed.
    10. Always use cacheAsBitmap and cacheAsBitmapMatrix with air apps (i.e., mobile devices).
    11. Reuse Objects whenever possible.
    12. Event.ENTER_FRAME loops: Use different listeners and different listener functions applied to as few DisplayObjects as possible.
    13. Pool Objects instead of creating and gc'ing Objects.
    14. Use partial blitting.
    15. Use stage blitting.
    16. Use Stage3D.

    Greatest to Least Benefit

    1. Use stage blitting (if there is enough system memory).
    2. Use Stage3D.
    3. Use partial blitting.
    4. Use cacheAsBitmap and cacheAsBitmapMatrix with mobile devices.
    5. Explicitly disable mouse interactivity when mouse interactivity not needed.
    6. Do not use Filters.
    7. Use the most basic DisplayObject needed.
    8. Reuse Objects whenever possible.
    9. Event.ENTER_FRAME loops: Use different listeners and different listener functions applied to as few DisplayObjects as possible.
    10. Use reverse for-loops and avoid do-loops and while-loops.
    11. Pool Objects instead of creating and gc'ing Objects.
    12. Strictly type variables whenever possible.
    13. Use weak event listeners and remove listeners.
    14. Replace dispatchEvents with callback functions whenever possible.
    15. Explicitly stop Timers to ready for gc.

      16. Stop Sounds to enable Sounds and SoundChannels to be gc'd.

    2 replies

    RajaguruVAuthor
    Inspiring
    July 27, 2017

    Thank you kglad. Let me check this one.

    kglad
    Community Expert
    Community Expert
    July 27, 2017

    you're welcome.

    kglad
    Community Expert
    kgladCommunity ExpertCorrect answer
    Community Expert
    July 18, 2017

    saying performance is adequate on one computing device (ipad pro) and not on a weaker one (ipad air) means your animation is not optimized or designed to work well on the weaker device.  improving coding and animation perfomance could fill a book.

    i devoted an entire chapter to optimizing performance in Flash Game Development: In a Social, Mobile and 3D World

    here's a snippet from that chapter:

    Optimization Techniques

    Unfortunately, I know of no completely satisfactory way to organize this information. In what follows, I discuss memory management first with sub-topics listed in alphabetical order. Then I discuss CPU/GPU management with sub-topics listed in alphabetical order.

    That may seem logical but there are, at least, two problems with that organization.

    1. I do not believe it is the most helpful way to organize this information.
    2. Memory management affects CPU/GPU usage, so everything in the Memory Management section could also be listed in the CPU/GPU section.

    Anyway, I am going to also list the information two other ways, from easiest to hardest to implement and from greatest to least benefit.

    Both of those later listings are subjective and are dependent on developer experience and capabilities, as well as, the test situation and test environment. I very much doubt there would be a consensus on ordering of these lists.  Nevertheless, I think they still are worthwhile.

    Easiest to Hardest to Implement

    1. Do not use Filters.
    2. Always use reverse for-loops and avoid do-loops and avoid while-loops.
    3. Explicitly stop Timers to ready them for gc (garbage collection).
    4. Use weak event listeners and remove listeners.
    5. Strictly type variables whenever possible.
    6. Explicitly disable mouse interactivity when mouse interactivity not needed.
    7. Replace dispatchEvents with callback functions whenever possible.
    8. Stop Sounds to enable Sounds and SoundChannels to be gc'd.
    9. Use the most basic DisplayObject needed.
    10. Always use cacheAsBitmap and cacheAsBitmapMatrix with air apps (i.e., mobile devices).
    11. Reuse Objects whenever possible.
    12. Event.ENTER_FRAME loops: Use different listeners and different listener functions applied to as few DisplayObjects as possible.
    13. Pool Objects instead of creating and gc'ing Objects.
    14. Use partial blitting.
    15. Use stage blitting.
    16. Use Stage3D.

    Greatest to Least Benefit

    1. Use stage blitting (if there is enough system memory).
    2. Use Stage3D.
    3. Use partial blitting.
    4. Use cacheAsBitmap and cacheAsBitmapMatrix with mobile devices.
    5. Explicitly disable mouse interactivity when mouse interactivity not needed.
    6. Do not use Filters.
    7. Use the most basic DisplayObject needed.
    8. Reuse Objects whenever possible.
    9. Event.ENTER_FRAME loops: Use different listeners and different listener functions applied to as few DisplayObjects as possible.
    10. Use reverse for-loops and avoid do-loops and while-loops.
    11. Pool Objects instead of creating and gc'ing Objects.
    12. Strictly type variables whenever possible.
    13. Use weak event listeners and remove listeners.
    14. Replace dispatchEvents with callback functions whenever possible.
    15. Explicitly stop Timers to ready for gc.

      16. Stop Sounds to enable Sounds and SoundChannels to be gc'd.