удалить содержимое (графическую строку) из MovieClip - PullRequest
1 голос
/ 31 июля 2010

У меня есть галерея изображений, которая загружает детальное изображение, а затем рисует линию рядом с изображением на одной стороне в зависимости от размеров изображения. При щелчке по изображению оно возвращается в список миниатюр основного изображения, а затем при нажатии большого пальца загружается другое изображение в держатель деталей. С ним все работает нормально, за исключением того, что линии, а не исчезающие при разгрузке детального изображения, накапливаются. Есть ли способ очистить содержимое линии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;
    }
}

1 Ответ

2 голосов
/ 31 июля 2010
lineDrawing.graphics.clear()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...