2010-11-07 33 views
0

我有一个加载外部图像到舞台(我有addChild()脚本其他地方)的脚本,但我不断收到一个错误,指出:ActionScript 3.0中拖动图像装载机,但得到的错误,它不能被转换为影片剪辑

类型错误:错误#1034:类型强制失败:无法flash.display使用::装载机@ b1b7101转换成的flash.display.MovieClip。 在project1_fla :: MainTimeline /阻力()

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; 

我确实使图像可拖动? *(当SWF启动,但图像不会因为我把的addChild()在if()语句的图像加载。难道是因为没有加载图像,它不可能是一个影片剪辑?)

回答

1

下面一行有几处错误。

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

首先,事件目标是Loader类型,因此您将无法将它强制转换为MovieClip。其次,在加载swf时,通常会进行这种强制转换,但是您要加载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; 
} 
相关问题