У меня есть галерея изображений, которая загружает детальное изображение, а затем рисует линию рядом с изображением на одной стороне в зависимости от размеров изображения. При щелчке по изображению оно возвращается в список миниатюр основного изображения, а затем при нажатии большого пальца загружается другое изображение в держатель деталей. С ним все работает нормально, за исключением того, что линии, а не исчезающие при разгрузке детального изображения, накапливаются. Есть ли способ очистить содержимое линииDrawing MovieClip, не удаляя его со сцены, чтобы я мог нарисовать в нем новую линию? Я пытался удалить removeChild на MovieClip, но затем строки полностью исчезают, так же, как и размещение lineDrawing.clear () вверху функции setupDetail. Вот мой (соответствующий) код до сих пор, любая помощь будет принята с благодарностью, я в тупике!
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;
}
}