Question

I got an error saying "Attempted access of inaccessible method rotation through a reference with static type flash.display:Sprite.ssd.rotation(90)}" I just want to know how to rotate my image by 90degrees when I double click on it.

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)
 }
Was it helpful?

Solution

The error suggests that the rotation method is not accessible , i.e , private or protected. Therefore you're not able to call it directly as in your code rotation(90).

Instead you should be using the rotation public property

    rotation = 90;

As superfro points out, you should also get an error from the rotate method which requires a MouseEvent parameter. So practically..

function rotate(event:MouseEvent):void
{
   ssd.rotation = 90;
}

Finally, makes sure that the doubleClickEnabled property of the Sprite is set to true

function onLoadingComplete(event:Event):void
{
   ssd.doubleClickEnabled = true;
   etc....

OTHER TIPS

Have you tried ssd.rotation = 90; ?

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top