2010-03-03 10 views
0

J'utilise Flash CS3 pour créer une application de dessin simple. Lorsque l'utilisateur clique sur un bouton, ils sélectionnent un MovieClip particulier. Après avoir cliqué ailleurs sur la scène, le clip est instancié et ajouté à la scène à la position du curseur. J'ai également ajouté l'option de pouvoir cliquer sur le clip ajouté et le faire glisser sur l'écran. Et tout cela fonctionne bien.Problèmes de positionnement Graphique Flash dessiné avec Graphics Classe

Le problème est que je veux aussi pouvoir dessiner dynamiquement et ajouter des objets à la scène via la classe Graphics. Chaque fois que j'ajoute des objets de cette manière, leurs coordonnées x et y sont toujours 0,0 peu importe où je les place sur la scène. Cela rend le positionnement de ces graphiques très très problématique. J'ai créé une fonction de positionnement modifiée spécifiquement pour ces graphismes dynamiquement dessinés et bien qu'elle fonctionne, elle est moins réactive que le positionnement des objets MovieClip. J'essaie toujours d'optimiser cette fonction, mais il me semble que la solution idéale est que les graphismes aient des coordonnées non nulles lorsqu'ils sont placés au milieu de la scène comme des objets MovieClip. Y a-t-il une «solution de contournement» pour y parvenir?

Répondre

0

Vous avez à tirer dans un MovieClip, puis déplacer que movieclip autour. Les dessins sont en fait liés à l'objet lui-même, vous ne pouvez donc pas les déplacer indépendamment. Il suffit donc de créer un conteneur, de dessiner dessus et de déplacer votre conteneur dans l'autre plan.

1

Si vous dessinez avec la classe graphique à l'intérieur d'un MovieClip/sprite, vous devrez dessiner sur un bitmap et afficher le bitmap à la place du MovieClip. Movieclips ne peut contenir que beaucoup d'informations vectorielles et même si vous dessinez sur quelque chose, la forme créée avec la classe Graphics est toujours là. Vous constaterez que si vous suivez votre fréquence d'images avec quelque chose comme la classe Stats de M. Doob, alors que vous commencez à remplir le MovieClip, le fps va chuter. La solution consiste à utiliser la méthode draw() de BitmapData et à copier ce qui se trouve à l'intérieur du MovieClip dans le bitmap que vous affichez. Lorsque vous créez le bitmap, vous devez le lier à BitmapData. Chaque fois que vous appelez draw, il mettra à jour le bitmap pour vous (ce qui est bien).

J'ai créé une application de peinture la semaine dernière, donc j'ai une expérience de première main de ce problème.