2010-07-31 54 views
1

我有一个图像库加载一个细节图像,然后根据图像尺寸在图像的一侧绘制一条线。点击图像返回到主图像缩略图列表,然后单击一个拇指将另一图像加载到详细信息持有者中。一切正常,除了线条,而不是消失在细节图像卸载,积累。有没有办法清除lineDrawing MovieClip中的内容而无需将其从舞台上移除,以便我可以在其中绘制一条新线?我已经尝试过MovieClip上的removeChild,但是线条完全消失,与在setupDetail函数顶部放置lineDrawing.clear()一样。这是我的(相关的)代码到目前为止,任何援助将不胜感激,我很难过!从MovieClip中删除内容(图形线)

var detailImage:Loader = new Loader(); 
var lineDrawing:MovieClip = new MovieClip(); 

setupDetail(); 

function setupDetail():void { 
    detail.visible = false; 
    detail.buttonMode = true; 
    detail.closeMessage.mouseEnabled = false; 

    detail.addChild(detailImage); 

    detailImage.contentLoaderInfo.addEventListener(Event.COMPLETE, fullyLoaded); 

    // make sure detail is above the gallery 
    addChild(detail); 

    detail.addEventListener(MouseEvent.CLICK, onCloseDetail, false, 0, true); 
} 

function fullyLoaded(evt:Event):void { 

    var imgHeight:int = evt.target.content.height; 
    var imgWidth:int = evt.target.content.width; 

    var hOffset:int = imgWidth + 5 + 27; 
    var vOffset:int = imgHeight + 5; 

    detail.addChild(lineDrawing); 

    if(imgWidth == 600) { 
     lineDrawing.graphics.lineStyle(3,0x9a9345); 
     lineDrawing.graphics.moveTo(28,vOffset); 
     lineDrawing.graphics.lineTo(626,vOffset); 
    } 
    else if(imgHeight == 600) { 
     lineDrawing.graphics.lineStyle(3,0x9a9345); 
     lineDrawing.graphics.moveTo(hOffset, 1); 
     lineDrawing.graphics.lineTo(hOffset, 599); 
    } 
} 

function onCloseDetail(evt:MouseEvent):void { 

    // only allow it to be closed if it is at least 90% opaque 
    if (detailImage.alpha>.9){ 
     detailImage.unload(); 
     TweenLite.to(detail,.5, {autoAlpha:0}); 
     detailImage.unload(); 
     detail.visible = false; 
    } 
} 

回答

2
lineDrawing.graphics.clear() 
+0

哇哦,谢谢,这工作完全置于onCloseDetail功能。再次感谢!!! – 2010-07-31 17:00:56