TypeError:错误#1034:在Accordion面板上键入Coercion失败

时间:2014-05-17 10:38:17

标签: actionscript-3

我在Flash中使用现成的Accordion Panel(这里)

现在当我在这个框架上添加任何按钮时,当我点击Accordion标签时会出现此错误:

  

TypeError:错误#1034:类型强制失败:无法转换   flash.display :: SimpleButton @ 48596ab9 to flash.display.MovieClip。

当我将movieclip添加到舞台时,我在点击任何Accordion面板后立即收到此错误:

  

TypeError:错误#1010:术语未定义且没有属性   在mobver2_fla :: MainTimeline / onClick()

这是Accordion面板的主要脚本:

import gs.*;    
import gs.easing.*;

panel1.props = {ly:53, ry:650, ind:1};    
panel2.props = {ly:115, ry:700, ind:2};    
panel3.props = {ly:169, ry:750, ind:3};

panel1.addEventListener(MouseEvent.CLICK, onClick);    
panel2.addEventListener(MouseEvent.CLICK, onClick);    
panel3.addEventListener(MouseEvent.CLICK, onClick);

function onClick(e:MouseEvent):void    
{    
    var clicked:MovieClip = MovieClip(e.target);

    for(var i:int=0; i<numChildren; i++)    
    {    
        var mc:MovieClip = MovieClip(getChildAt(i));

        if(mc.props.ind <= clicked.props.ind)    
            TweenLite.to(mc, 1, {y:mc.props.ly, ease:Bounce.easeOut});    
        else    
            TweenLite.to(mc, 1, {y:mc.props.ry, ease:Bounce.easeOut});    
    }    
}

看起来这个脚本会对Frame中的所有movieclip或按钮产生影响,但我无法弄清楚我必须如何将其他按钮和动画片段分开。我真的需要为这些面板和框架添加一些按钮和影片剪辑

1 个答案:

答案 0 :(得分:0)

错误说明了一切 - 你试图将一个按钮投射到一个MovieClip,而SimpleButton是一个MovieClip。

这与手风琴无关。

您需要更改此行:

var clicked:MovieClip = MovieClip(e.target);

开始使用调试器和跟踪来查看您实际在做什么。另外 - 启用许可调试以查看错误在哪一行。

我们无法帮助你每次做错事,因为这不是一个常见问题,也不是面向模式,这只是你的一个简单错误。