Je développe une application iPad avec Adobe Air.AS3 Async Création de bitmap iOS
J'ai toutes mes images chargées dans BitmapData
objets lorsque l'application démarre. Ensuite, j'ai seulement besoin de créer des objets Bitmap
(qui sont uniquement des conteneurs) pour utiliser les pixels qui sont stockés dans les objets BitmapData
.
Cela fonctionne très bien jusqu'à ce que je dois créer un objet Bitmap
avec une grande image. L'application ralentit, voire gèle, pendant une seconde.
Comme AS3 est monothread, je ne peux pas déléguer la création Bitmap
à un nouveau thread. Aussi, si l'interface utilisateur est gelée, je ne peux pas montrer un fileur décent pour informer l'utilisateur "quelque chose se passe".
Comment pourrais-je résoudre ce problème? Existe-t-il un moyen de créer des objets en parallèle sans affecter les performances de l'interface utilisateur?
Beaucoup plus commun (quoique impropre) façon de faire est d'appeler simplement 'BitmapData.getPixel (0,0)' sur le BitmapData que vous souhaitez charger en mémoire. Cela va décoder les données pour obtenir le pixel (et fonctionnera aussi sur les images intégrées). Sachez que le décodage d'une image charge l'image _uncompressed_ en mémoire. En raison des faibles quantités de RAM que vous pouvez utiliser dans iOS et de la taille de l'exécution, cela peut devenir très rapidement un problème. –
Merci @JoshJanusch Je vais garder un oeil sur la mémoire. Jusqu'à présent, la solution ci-dessus fonctionne à merveille. – Pier
Je suggère fortement d'avoir Adobe Scout. Il vous aidera énormément tout en essayant de surveiller toutes les performances, en particulier la mémoire –