Actionscript 3 Flash创作环境奇怪的测试电影行为(AS3)
我一辈子都搞不明白为什么会发生这种事。让我描述一下我的经历 我通过actionscript动态添加所有内容 在Flash创作环境中,当我测试电影时,有时舞台上所有的电影嘴唇都消失了,我看到的只是舞台的颜色 奇怪的是,我仍然可以滚动/卷展(我在滚动/卷展处理程序中添加了跟踪语句)。 我还跟踪了'visible'和'alpha'属性,visible=true和alpha=1.0!!! 我看到的一件事是,有时滚动/滚动方法会被快速连续调用多次。即,方法调用顺序为滚动、卷展、滚动或滚动、滚动、卷展 我在滚动和滚动方法中的操作非常简单。他们所做的只是打开/关闭其他电影嘴唇…想象一幅地图…当你滚动图标时,地图上会显示一条路径,当你滚动时,路径就会消失 但是,如果我调整测试电影窗口的窗口,所有内容都会再次出现 疯狂的是,当我发布它时,这种行为不会在浏览器或应用程序中发生 发生什么事了?这可能是创作环境中的记忆问题吗 在此发布一些代码:Actionscript 3 Flash创作环境奇怪的测试电影行为(AS3),actionscript-3,Actionscript 3,我一辈子都搞不明白为什么会发生这种事。让我描述一下我的经历 我通过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中遇到这种问题,我们从未找到解决方案。