Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 Movieclip AS3内的按钮不工作_Actionscript 3_Flash_Movieclip - Fatal编程技术网

Actionscript 3 Movieclip AS3内的按钮不工作

Actionscript 3 Movieclip AS3内的按钮不工作,actionscript-3,flash,movieclip,Actionscript 3,Flash,Movieclip,我对flash和as3比较陌生。基本上,我正在尝试将一个电影剪辑加载到舞台上,然后单击该电影剪辑中的一个按钮,再次将孩子从舞台上移除。我有以下几部电影: var myResultBox:ResultBox = new ResultBox(); addChild(myResultBox); 我在movieclip中有一个叫做closeButton1的按钮。我试着点击关闭按钮,这反过来会删除电影剪辑 MovieClip中的代码为- //“我的结果”框中“关闭”按钮的事件侦听器 closeButto

我对flash和as3比较陌生。基本上,我正在尝试将一个电影剪辑加载到舞台上,然后单击该电影剪辑中的一个按钮,再次将孩子从舞台上移除。我有以下几部电影:

var myResultBox:ResultBox = new ResultBox();
addChild(myResultBox);
我在movieclip中有一个叫做closeButton1的按钮。我试着点击关闭按钮,这反过来会删除电影剪辑

MovieClip中的代码为- //“我的结果”框中“关闭”按钮的事件侦听器

closeButton1.addEventListener(MouseEvent.CLICK, closeBMI);

function closeBMI(evt:MouseEvent):void
{
    removeChild(myResultBox);
}
跟随误差

代码:1120:访问未定义的属性closeButton1


如果您在按钮内提供任何帮助,将不胜感激

?但您不能以这种方式引用按钮。你应该把你的代码放在movieclip中,movieclip中有一个按钮,在这里你可以添加result
addChild(myResultBox)
;因此,您的事件处理程序将能够引用
myResultBox

对于按钮中的代码:

this.addEventListener(MouseEvent.CLICK, closeBMI);

function closeBMI(evt:MouseEvent):void
{
    //removeChild(myResultBox);
    //Sadly, you don't have reference on myResultBox within a button...
}

下面是一个简单的程序,我认为它具有您所要求的功能。据我所知,你在舞台上有一个按钮。单击按钮A时,电影剪辑B将添加到舞台。电影剪辑B中有按钮B。单击按钮B时,将删除电影剪辑B和按钮B

import flash.display.MovieClip;
import flash.display.Sprite;
import flash.events.MouseEvent;


// This creates a movie clip that contains a button.
// This button will remove the movie clip that contains
// it when it is clicked.
var MovieClipB = new MovieClip();
MovieClipB.graphics.lineStyle(1,0);
MovieClipB.graphics.beginFill(0x0000FF,1);
MovieClipB.graphics.drawRect(0,0,50,50);

var ButtonB:MovieClip = new MovieClip();
ButtonB.buttonMode = true;

ButtonB.graphics.lineStyle(1,0);
ButtonB.graphics.beginFill(0xFFFFFF,1)
ButtonB.graphics.drawCircle(0,0,10);
ButtonB.x = ButtonB.y = 25;

MovieClipB.addChild(ButtonB);

ButtonB.addEventListener(MouseEvent.CLICK, removeButtonClickHandler, false, 0, true);
function removeButtonClickHandler(event:MouseEvent):void
{
    var button = MovieClip(event.currentTarget);    
    var container = button.parent;
    container.parent.removeChild(container);
}

// This creates a button that starts on the stage.
// When clicked, it adds the movie clip defined above to the stage

var ButtonA:MovieClip = new MovieClip();
ButtonA.buttonMode = true;

ButtonA.graphics.lineStyle(1,0);
ButtonA.graphics.beginFill(0xFF0000,1)
ButtonA.graphics.drawRect(0,0,50,50);

addChild(ButtonA);
ButtonA.x = ButtonA.y = 20;

ButtonA.addEventListener(MouseEvent.CLICK, addButtonClickHandler, false, 0, true);
function addButtonClickHandler(event:MouseEvent) : void
{
    addChild(MovieClipB);
    MovieClipB.x = 200;
    MovieClipB.y = 20;
}

很抱歉,我应该提到,在单击主阶段中的按钮(goBMI)后,我正在尝试将myResultsBox添加到阶段。这就增加了电影的细节。但是,当我尝试将上面的代码放入movieclip中时,它无法识别变量名,因为我需要创建实例并将其添加到原始按钮函数(goBMI)中的场景中。这正是我一直在寻找的!button.parent是我缺少的功能。再次感谢