我正在编写一个程序,我可以根据用户点击的按钮显示2个布局。
这些布局实际上是他们自己的电影剪辑:layA,layB。
layA是一个5按钮菜单,而layB是一个4按钮菜单。
按钮是同一个对象“wBut”的所有不同实例。
我已将AS Linkages添加到每个布局,因此layA = LayA,layB = LayB。
var layO;
if( layout == 1 ){
//Layout A (5 Steps)
layO = new LayA();
addChild(layO);
layO.x = 404.40;
layO.y = 300.00;
}
else if (layout == 2){
//Layout B (4 Steps)
layO = new LayB();
addChild(layO);
layO.x = 395.6;
layO.y = 303;
}
当用户点击前一帧中的按钮时,这基本上写在一帧上。
现在在layA我有5个按钮,实例为s1A到s5A,layB按钮为s1B到s5B。 来自wBut的所有实例。
我想要做的是为每个布局的每个按钮添加一个MOUSE_OVER侦听器,以便在舞台上加载另一个MC。
例如:此功能在ROOT阶段:
function onMouseOverS1(e:MouseEvent):void
{
if (type == 1){
addChild(mcS2);
mcS2.x= 403.2;
mcS2.y= 280.1;
}
}
这是ROOT舞台上的听众:
var layO;
if( layout == 1 ){
//Layout A (5 Steps)
layO = new LayA();
addChild(layO);
layO.x = 404.40;
layO.y = 300.00;
//here
layO.s1A.addEventListener(MouseEvent.MOUSE_OVER, onMouseOverS1);
}
mcS2是第二个MC的变种。
当我尝试这样做时,它会给出以下错误...
TypeError: Error #1009: Cannot access a property or method of a null object reference.
at Improved_ani_fla::MainTimeline/frame58()
第58帧()是带有布局代码的框架,在找到调试方法之后,我发现错误正好在之前引用的事件监听器的行上。
如果不清楚我真的很抱歉,但这是我第一次写一个问题,甚至尝试用AS3编码。
谢谢。