J'ai un objet de clip avec une largeur de 306 et une hauteur de 194. J'ai besoin de changer les dimensions du clip et d'avoir toujours l'échelle x et y à 100. Actuellement, quand je change la largeur du clip à 352.8 , l'échelle x augmente à 115,3%. Je dois avoir l'échelle réinitialisée à 100% après avoir ajusté la largeur du clip. Existe-t-il un moyen de le faire dans CS3? (Tout est en mode design, pas en cours d'exécution). Ai-je besoin de supprimer le clip et de le recréer?Comment redimensionner un MovieClip sans affecter la balance?
Répondre
Vous devez définir un MovieClip dans votre nouvelle taille. Par exemple un fond de MovieClip (avec alpha à 0 si vous ne voulez pas le voir). Le MovieClip parent prendra la taille de ses enfants ou ce qui y est dessiné.
Il existe peut-être un moyen plus approprié de le faire, mais vous pouvez redimensionner un conteneur à l'intérieur de votre MovieClip à la taille que vous voulez.
...
Constructor() {
this.container = new Sprite();
addChild(container);
}
override public function set width(value:Number):void{
container.width = value;
}
override public function set height(value:Number):void{
container.height = value;
}
...
Je ferais attention à ne pas modifier les paramètres de largeur et de hauteur du parent - vous pourriez en avoir besoin plus tard. Au lieu de cela, je créer de nouvelles méthodes comme nonscalingWidth() et nonscalingHeight() et le faire de cette façon. Mais oui - cela permettra d'atteindre la fonctionnalité que vous voulez. – Myk
Je pense que cela dépend de la partie de votre code qui ne veut pas que les propriétés de l'échelle changent. Si c'est à partir de l'intérieur de l'objet lui-même, il faut faire attention ... (pas vrai?) – Les
Idée intéressante, je vais essayer. @Myk - comment implémenteriez-vous les fonctions non-dimensionnelles Largeur/Hauteur? –
Merci, je ne savais pas que ça pouvait arriver. –
Merci encore, cela m'a aidé à résoudre le problème. Une fois que j'ai redimensionné le contenu du MovieClip, tout le reste a fonctionné comme prévu. –