Actionscript 3.0 Rotation d'une image, par 90 degrés, qui a été chargé à partir d'une URL
-
30-09-2019 - |
Question
J'ai eu une erreur en disant "Tentative d'accès de rotation de la méthode inaccessible par une référence avec flash.display de type statique: Sprite.ssd.rotation (90)}" Je veux juste savoir comment faire pivoter mon image par 90degrees quand je double-cliquez dessus.
var shootingstar:Loader = new Loader();
shootingstar.load(new URLRequest("http://i51.tinypic.com/m8jp7m.png"));
shootingstar.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoadingComplete);
var ssd:Sprite = new Sprite();
function onLoadingComplete(event:Event):void
{
ssd.addChild( event.currentTarget.loader.content );
ssd.addEventListener(MouseEvent.MOUSE_DOWN, drag);
ssd.addEventListener(MouseEvent.MOUSE_UP, drop);
ssd.addEventListener(MouseEvent.DOUBLE_CLICK, rotate)
ssd.height=180
ssd.width=124
}
function drag(event:MouseEvent):void{
ssd.startDrag()
}
function drop(event:MouseEvent):void{
ssd.stopDrag()
}
function rotate():void{
ssd.rotation(90)
}
La solution
L'erreur suggère que la méthode de rotation n'est pas accessible, i.e., privé ou protégé. Par conséquent, vous n'êtes pas en mesure d'appeler directement dans votre rotation de code (90).
vous devriez plutôt utiliser la rotation propriété publique
rotation = 90;
Points, vous devriez également obtenir une erreur de la méthode rotate qui nécessite un paramètre MouseEvent. Donc, pratiquement ..
function rotate(event:MouseEvent):void
{
ssd.rotation = 90;
}
Enfin, fait en sorte que la propriété doubleClickEnabled du sprite est définie sur true
function onLoadingComplete(event:Event):void
{
ssd.doubleClickEnabled = true;
etc....
Autres conseils
Avez-vous essayé ssd.rotation = 90;
?