2010-02-17 9 views
0

Situation
Un projet Flex exporté en tant que projecteur, en plein écran. Le projet a un fond et plusieurs points qui représentent chacun un "Lieu". Ces emplacements sont extraits d'un fichier XML et leur position est définie en pourcentages. L'emplacement en pixels est calculé (cela fonctionne comme il se doit) par la largeur et la hauteur de l'application. Les points sont placés correctement.Problème avec les objets position sur différentes résolutions

L'arrière-plan est un fichier JPG avec une résolution de 1280 * 1024. À ce moment, l'arrière-plan est défini sur Canvas avec backgroundSize = auto. Cela place l'image au centre sans l'étirer. Les étirements donnent des images laides et pixélisées et déchirent les proportions.

Problème
Lorsque nous considérons le projet sur 2 résolutions différentes (1 = 1280 * 1024; 2 = 1024 * 768), les points sont dans la bonne position, l'image de fond est forte. Mais - en raison de l'arrière-plan ayant la même résolution que 1, l'arrière-plan n'est pas complètement affiché dans la résolution 2 (parce qu'il n'est pas étiré) Un résultat logique

C'est pourquoi j'ai essayé d'étirer l'arrière-plan.
Dots placed in the correct way http://i733.photobucket.com/albums/ww336/winkelman66/example1.jpg

Sur une plus petite/autre résolution:?
alt text http://i733.photobucket.com/albums/ww336/winkelman66/example2.jpg

Solution
Comment dois-je résoudre ce problème, je pensais avoir toujours l'arrière-plan centré sur le fond, laissant les proportions telles qu'elles sont. Ce n'est pas une option en raison de détails/parties manquantes de l'image. Les étirements se traduisent par des images laides et pixélisées, hors de proportion.
Je sais que l'étirement peut être la seule option pour résoudre le problème de résolution sans perdre des parties de l'image, mais comment puis-je résoudre le problème lorsque les points ne sont pas dans la bonne position?

Répondre

0

problème Big, solution simple (après avoir travaillé heures sur ce). Nous avons juste oublié une chose simple dans nos calculs: refléter la taille (largeur/hauteur) des points dans la position ...

Donc, si vous faites face au même problème lors du calcul de l'emplacement en pixels à partir de pourcentages, don ' t oublier d'inclure (viewToBePositioned.width/2) dans vos calculs :-)

1

Je ne sais pas si cela est exactement ce que vous voulez dire, mais je vais vous donner un coup de feu: P

  1. obtenir la taille du fond d'origine
  2. Obtenir la taille de l'arrière-plan étiré
  3. calc la différence de largeur et la hauteur
  4. Refléter la différence sur les points la position