Actionscript 3 Flash创作环境奇怪的测试电影行为(AS3)

Actionscript 3 Flash创作环境奇怪的测试电影行为(AS3),actionscript-3,Actionscript 3,我一辈子都搞不明白为什么会发生这种事。让我描述一下我的经历 我通过actionscript动态添加所有内容 在Flash创作环境中,当我测试电影时,有时舞台上所有的电影嘴唇都消失了,我看到的只是舞台的颜色 奇怪的是,我仍然可以滚动/卷展(我在滚动/卷展处理程序中添加了跟踪语句)。 我还跟踪了'visible'和'alpha'属性,visible=true和alpha=1.0!!! 我看到的一件事是,有时滚动/滚动方法会被快速连续调用多次。即,方法调用顺序为滚动、卷展、滚动或滚动、滚动、卷展 我在

我一辈子都搞不明白为什么会发生这种事。让我描述一下我的经历

我通过actionscript动态添加所有内容

在Flash创作环境中,当我测试电影时,有时舞台上所有的电影嘴唇都消失了,我看到的只是舞台的颜色

奇怪的是,我仍然可以滚动/卷展(我在滚动/卷展处理程序中添加了跟踪语句)。 我还跟踪了'visible'和'alpha'属性,visible=true和alpha=1.0!!! 我看到的一件事是,有时滚动/滚动方法会被快速连续调用多次。即,方法调用顺序为滚动、卷展、滚动或滚动、滚动、卷展

我在滚动和滚动方法中的操作非常简单。他们所做的只是打开/关闭其他电影嘴唇…想象一幅地图…当你滚动图标时,地图上会显示一条路径,当你滚动时,路径就会消失

但是,如果我调整测试电影窗口的窗口,所有内容都会再次出现

疯狂的是,当我发布它时,这种行为不会在浏览器或应用程序中发生

发生什么事了?这可能是创作环境中的记忆问题吗

在此发布一些代码:

    private function rollOverUserListener ( e:MouseEvent ) {
        trace(">>>>>>>> rollOverUserListener()  e.currentTarget.name : " + e.currentTarget.name);
        trace("e.currentTarget.alpha: " + e.currentTarget.alpha);
        trace("e.currentTarget.visible: " + e.currentTarget.visible);           
        e.currentTarget.rollOverAction(); //just scales the icon a little
        //fade up/down the appropriate path
        worldMap.resetPaths(); //turns off all the paths
        for (var i=0; i<users.length; i++){
            if ( e.currentTarget == users[i] ) { //highlight the right path
                worldMap.highlightPath(i);
            }
        }
    }


    private function rollOutUserListener ( e:MouseEvent ) {
        trace("<<<<<<<< rollOutUserListener()  e.currentTarget.name : " + e.currentTarget.name);
        e.currentTarget.rollOutAction(); //scales down the icon to normal
        worldMap.resetPaths();
    }
private函数rollOverUserListener(e:MouseEvent){
跟踪(“>>>>>>>>滚动用户侦听器()e.currentTarget.name:”+e.currentTarget.name);
跟踪(“e.currentTarget.alpha:+e.currentTarget.alpha”);
跟踪(“e.currentTarget.visible:+e.currentTarget.visible”);
e、 currentTarget.rollOverAction();//只需稍微缩放图标
//在适当的路径上向上/向下淡入
worldMap.resetpath();//关闭所有路径

对于(var i=0;i我认为通过发布您所做的代码来尝试解决这个问题是没有效率的

但是,我的猜测是,您看到的行为差异是由于flash player版本造成的

CS5或任何你拥有的flash版本,都是当时最新的播放器。但是flash播放器一直在升级,所以当你在浏览器中时,你很可能拥有最新的flash播放器。这可能是你看到的差异的原因

但是,如果没有看到highlightPaths和resetPaths函数,上面的代码没有多大帮助。我看到您有一个跟踪,但就在那之后--执行的代码可能很容易在渲染帧之前更改跟踪的任何内容的状态

在代码之后贴上一些痕迹,看看你是否得到了你想要的

您使用的库是否具有仅由较新的flash player支持的功能?

私有函数rollOverUserListener(e:MouseEvent){
private function rollOverUserListener ( e:MouseEvent ) {
    trace(">>>>>>>> rollOverUserListener()  e.currentTarget.name : " + e.currentTarget.name);
    trace("e.currentTarget.alpha: " + e.currentTarget.alpha);
    trace("e.currentTarget.visible: " + e.currentTarget.visible);           
    e.currentTarget.rollOverAction(); //just scales the icon a little
    //fade up/down the appropriate path
    worldMap.resetPaths(); //turns off all the paths
    for (var i=0; i<users.length; i++){
        if ( e.currentTarget == users[i] ) { //highlight the right path
            worldMap.highlightPath(i);
        }
    }
}


private function rollOutUserListener ( e:MouseEvent ) {
    trace("<<<<<<<< rollOutUserListener()  e.currentTarget.name : " + e.currentTarget.name);
    e.currentTarget.rollOutAction(); //scales down the icon to normal
    worldMap.resetPaths();
}
跟踪(“>>>>>>>>滚动用户侦听器()e.currentTarget.name:”+e.currentTarget.name); 跟踪(“e.currentTarget.alpha:+e.currentTarget.alpha”); 跟踪(“e.currentTarget.visible:+e.currentTarget.visible”); e、 currentTarget.rollOverAction();//只需稍微缩放图标 //在适当的路径上向上/向下淡入 worldMap.resetpath();//关闭所有路径
对于(var i=0;i可能与未经您意识到的时间线有关?您是否使用时间线的多个帧,或使用任何事件。输入帧事件?好问题Alex。我没有在主时间线上使用任何额外帧。我还只是在主时间线中的唯一帧上添加了一个停止()操作,以防万一……:)你在使用Mac吗?我的一位喜欢Mac Pro的同事经常在IDE中遇到这种问题,我们从未找到解决方案。