2010-11-07 34 views
0

J'ai un script qui charge une image externe dans la scène (j'ai le script addChild() ailleurs) mais je reçois toujours une erreur qui dit :Actionscript 3.0 Glisser l'image du chargeur mais obtenir l'erreur qu'elle ne puisse pas être convertie en un MovieClip

TypeError: Erreur n ° 1034: La coercition de type a échoué: impossible de convertir flash.display :: Loader @ b1b7101 en flash.display.MovieClip. à project1_fla :: MainTimeline/drag()

var my_loader:Loader = new Loader(); 
my_loader.load(new URLRequest("http://i54.tinypic.com/anom5d.png")); 
my_loader.addEventListener(MouseEvent.MOUSE_DOWN, drag); 

function drag(event:MouseEvent):void{ 
var my_loader:MovieClip = MovieClip(event.target); 
my_loader.startDrag() 
my_loader.scaleX = my_loader.scaleY = .95; 

ce que je fais pour rendre l'image draggable? * (L'image est chargée lorsque le swf démarre mais l'image ne le sera pas parce que j'ai ajouté addChild() dans une instruction if() Serait-ce que puisque l'image n'est pas chargée, il ne peut pas s'agir d'un MovieClip ?)

Répondre

1

Il y a quelques erreurs avec la ligne suivante.

var my_loader:MovieClip = MovieClip(event.target); 

Tout d'abord, l'objectif de l'événement est de type chargeur de sorte que vous ne serez pas en mesure de le contraindre dans un MovieClip. Deuxièmement, vous feriez généralement ce type de coercition lors du chargement d'un swf, mais vous chargez un png!

var container:Sprite = new Sprite(); 
addChild(container); 

my_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoadingComplete); 
my_loader.load(new URLRequest("http://i54.tinypic.com/anom5d.png")); 

function onLoadingComplete(event:Event):void 
{ 
    container.addChild(event.currentTarget.loader.content); 
    container.addEventListener(MouseEvent.MOUSE_DOWN, drag); 
    //remove the listener here 
} 

function drag(event:MouseEvent):void{ 
    container.startDrag() 
    container.scaleX = 0.95; 
    container.scaleY = 0.95; 
    } 
0
var my_loader:Loader = new Loader(); 
addChild(my_loader); 
my_loader.addEventListener(MouseEvent.MOUSE_DOWN, drag); 
my_loader.load(new URLRequest("http://i54.tinypic.com/anom5d.png")); 
function drag(event:MouseEvent):void{ 
my_loader.startDrag() 
my_loader.scaleX = 0.95; 
my_loader.scaleY = 0.95; 
}