Flash AS3通过Button在舞台上创建组件

时间:2014-05-26 13:19:32

标签: actionscript-3

抱歉我复杂的提问;)

我使用addChild(...)方法在舞台上创建了几个组件(Slider,TextLabel,CheckBox,...)。现在,如果用户需要一个Slider组件(对于另一个输入),我想给他一个按钮“addButton”(已经在舞台上),带有一个CLICK addEventListener。在addEventListener中触发的函数应该在舞台上创建一个新的Slider组件,例如

addButton.addEventListener(MouseEvent.CLICK,addSlider("slid1",20,160,250,0,250,30));

问题是将参数传递给函数,我需要将新的Slider设置为几个基本值,如位置,宽度,最小值,最大值等....

这可以通过这种方式实现吗? 谢谢, 埃德

1 个答案:

答案 0 :(得分:0)

有几种方法可以做到这一点。最简单的方法是在鼠标事件处理程序中调用函数:

addButton.addEventListener(MouseEvent.CLICK, addSliderHandler);

function addSliderHandler(e:MouseEvent):void {
{
    addSlider("slid1",20,160,250,0,250,30);
}

编辑(回答你的评论问题):

要根据现有组件定位新组件,可以保留对脚本中位置的变量引用,并将其作为参数传递。例如,假设您希望第一个生成的滑块位于y:160,并且每个滑块比此更多40px,请将脚本更改为:

var sliderY:int = 160;

addButton.addEventListener(MouseEvent.CLICK, addSliderHandler);

function addSliderHandler(e:MouseEvent):void {
{
    addSlider("slid1",20,sliderY,250,0,250,30);//Pass sliderY instead of literal number
    sliderY += 40;//Add 40 to sliderY
}

现在,每次使用此功能创建按钮时,它将定位在y = sliderY,然后它将向sliderY添加40 ....所以生成的第一个将是160,下一个是200,接下来是240等。

希望这有帮助!