2010-09-29 5 views
0

Dans Flex, comment se connecter à une variable bitmap ou bitmapdata pour qu'une fonction soit notifiée chaque fois que les données du bitmap ont changé (le pixel a changé ou le filtre a été ajouté)?Vous notifié de modification dans Bitmap Flex ou BitmapData?

J'ai essayé de configurer la liaison, mais cela ne fonctionne pas.

Il doit y avoir un moyen de le faire, car je peux lier un mx: Image à un bitmap via l'attribut 'source', et l'image affichée se met à jour tout le temps quand je modifie le bitmap. Comment Flex le fait-il? Est-ce qu'il redessine aveuglément le bitmap à chaque image, ou est-il intelligent et ne se redessine que lorsque le bitmap change? Si oui, comment sait-il quand le bitmap change?

+0

À quoi avez-vous lié, lorsque vous avez essayé la liaison? Pouvez-vous inclure ce code, même si cela n'a pas fonctionné? –

Répondre

0

Ceci est juste une sorte de supposition semi-éduquée, sans aucun test, donc prenez-le avec du sel.

Lorsque Flex lie l'attribut source d'un Image, la valeur .source est de type BitmapAsset.

BitmapAsset possède une propriété .bitmapData, qui fait référence à l'image en question.

Je m'attends à ce que la liaison effectuée par Flex soit contre cette propriété .bitmapData.

Je ne vois aucune raison pour laquelle vous ne devriez pas pouvoir faire cela aussi. Je pense que vous devrez faire un petit peu de travail circulaire, car vous devrez créer une instance BitmapAsset et la remplir avec le BitmapData sur lequel vous souhaitez conserver des onglets, puis lier à la propriété .bitmapData de l'objet BitmapAsset.

En supposant un var appelé 'bitmapData', qui est une instance de BitmapData, je pense que ce qui suit devrait fonctionner.

var bitmapAsset:BitmapAsset = new BitmapAsset(bitmapData); 

var bitmapDataChangeWatcher:ChangeWatcher = BindingUtils.bindSetter(handleChangeToBitmapData, bitmapAsset, "bitmapData"); 

private function handleChangeToBitmapData(data:BitmapData):void 
{ 
    // Handle change to the bitmap data 
} 
Questions connexes