【发布时间】:2009-09-23 21:03:28
【问题描述】:
大家好,Flashers :)
我在 StackOverFlow 上提出的第一个问题涉及这个问题,我有一个数组,它创建了几个不同的按钮。但是我不知道如何为他们分配操作: How to give dynamically created buttons actions for each one - part 1
感谢Joel Hooks,我能够让我的代码正常工作。然而这一次,我没有将导入的图形用作我的库中的类,而是通过绘制渐变*(不需要导入 jpg)*来创建影片剪辑。现在我又遇到了另一个可怕的 "not compile time constant" 错误。我相信这与我如何尝试确定单击或翻转的按钮实例有关。
上一个按钮创建(工作)代码:
for (var i:Number=0; i
buttons.push(navButton); 按钮[i].addEventListener(MouseEvent.MOUSE_UP,handleButtonClick); 按钮[i].addEventListener(MouseEvent.ROLL_OVER,handleButtonOver); 按钮[i].addEventListener(MouseEvent.ROLL_OUT,handleButtonOff); }
上一个监听器(工作)代码:
function handleButtonOver(event:MouseEvent):void {
var button:NavButton = event.target as NavButton; var id:Number = Number(button.name.split("button")1); 如果(按钮) TweenLite.to(buttonRolls[id], .4, {alpha:1, ease:Strong.easeOut}); cataText[id].defaultTextFormat = a12Green; cataText[id].text = myXMLArray[id].id; }
当前按钮创建代码:
for (var i:Number = 0; i < num; i++) {
trace("loop number = "+i);
var blueGradient:MovieClip = new MovieClip();
blueGradient.name = "button" +i;
blueGradient.graphics.beginGradientFill(bGrad, bColors, bAlphas, bRatios ,bMatrix)
blueGradient.graphics.drawRect(0, 0, 266, 40);
blueGradient.x = i * navSIZE;
blueGradient.y = navBtnY;
blueGradient.buttonMode = true;
addChild(blueGradient);
buttons.push(blueGradient)
buttons[i].addEventListener(MouseEvent.MOUSE_UP, handleButtonClick);
buttons[i].addEventListener(MouseEvent.ROLL_OVER, handleButtonOver);
buttons[i].addEventListener(MouseEvent.ROLL_OUT, handleButtonOff);
}
当前按钮监听代码:
function handleButtonOver(event:MouseEvent):void {
var button:blueGradient = event.target as blueGradient;
var id:Number = Number(blueGradient.name.split("button")[1]);
if(blueGradient)
cataText[id].defaultTextFormat = navFontRoll;
cataText[id].text = myArray[id].id;
}
如果以下行被注释掉,当前电影才会正常运行:
var button:blueGradient = event.target as blueGradient;
因为这就是导致出现非编译时间常数错误的原因。 但是,通过删除该行,所有按钮都是 button1,而不是动态创建的 2 个名为 button0 和 button1 的按钮。
这里的任何帮助或指示将不胜感激!提前感谢您查看我的代码。
【问题讨论】:
-
我建议您阅读一些关于 Action Script 中的 OOP 的内容 - 它会对您有很大帮助。 Flash 文档中有“准备就绪”的示例。只管“上课”。
标签: flash actionscript-3 button compile-time compile-time-constant