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



对不起,我的问题很复杂;)

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

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

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

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

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

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,然后它将添加40到sliderY....所以第一个生成的是160,下一个是200,下一个是240等等。

希望这对你有帮助!

最新更新