【问题标题】:HTML5 canvas (Animate CC) remove movieclip from stage with buttonHTML5 画布(Animate CC)使用按钮从舞台上删除影片剪辑
【发布时间】:2019-01-22 08:59:53
【问题描述】:

请帮忙,我花了整整一个上午的时间试图解决这个问题,结果惨遭失败。

我正在尝试将旧的 swf 文件更新到新的 html 画布中。

到目前为止,我已经更新了所有内容,包括将我想要的动画剪辑 Image_1 加载到舞台上到 var "fl_MyInstance" 中,这是通过 button_1 通过以下代码加载的。


this.button_1.addEventListener("click", fl_MouseClickHandler.bind(this));

function fl_MouseClickHandler()
{
    var fl_MyInstance = new lib.Image_1();
    fl_MyInstance.x = 364.70;      
    fl_MyInstance.y = 199.30;       
    this.addChild(fl_MyInstance);

}

当这个电影剪辑在舞台上时,它有一个标记为 close1 的按钮,我尝试了很多代码来尝试关闭它....但它就是不起作用。

我尝试的最新代码是..

this.close1.addEventListener("click", fl_MouseClickHandler.bind(this));
function fl_MouseClickHandler()
{
  stage.removeChild( fl_MyInstance );
}

请帮忙,我知道它可能需要针对父级或引用阶段或根或其他东西,但所有尝试都无济于事。如有必要,我什至不介意清除所有孩子。

希望有人能帮忙。

标记

【问题讨论】:

    标签: html html5-canvas createjs removechild animate-cc


    【解决方案1】:

    您的问题与范围有关。在新文件中尝试以下操作。在舞台上绘制两个影片剪辑并将它们命名为 buttonAdd 和 buttonRemove。在您的库中有一个名为 Rectangle 的影片剪辑。现在添加以下代码:

    var that = this;
    this.buttonAdd.addEventListener("click", addFromLibrary);
    this.buttonRemove.addEventListener("click", removeClip);
    
    function addFromLibrary(e)
    {   
        window.myRectangle = stage.addChild(new lib.Rectangle());
    }
    
    function removeClip(e){
        stage.removeChild(myRectangle);
    }
    

    这应该可行,但可能有更优雅的方法来实现这一点。

    【讨论】:

    • 非常感谢 :) 当我回到我的电脑上时我会试试这个。虽然关闭按钮在影片剪辑本身内,但希望它仍然可以工作。
    • 嘿,我尝试了以下代码附加到影片剪辑 Image_1 中的关闭按钮,该影片剪辑加载在名为 fl_MyInstance 的 Var 中 this.close1.addEventListener("click", removeClip);功能 removeClip(e){ stage.removeChild(fl_MyInstance); } 什么都没发生。
    • 您好,如果您的按钮位于影片剪辑内,您需要告诉代码查找关卡以找到要删除的影片剪辑,请尝试:this.parent.removeChild(fl_MyInstance);跨度>
    • 谢谢,我会在周末试试这个 :) 我发现画布存在局限性,以另一种方式构建概念更有意义。但是加载/关闭动画剪辑仍然会在其他项目中派上用场
    猜你喜欢
    • 2016-06-23
    • 1970-01-01
    • 1970-01-01
    • 2014-01-28
    • 2019-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多