Flash 2个不同时播放的电影剪辑位于与电影剪辑as3嵌套的同一帧上

Flash 2个不同时播放的电影剪辑位于与电影剪辑as3嵌套的同一帧上,flash,actionscript-3,Flash,Actionscript 3,我有两个电影唇在同一个框架上,但在电影唇内的不同层上。第一部电影演得很好。然而,第二个甚至连一帧都没有。我在下面提到的代码位于包含背景图像的第二个movieclip中。我认为这段代码导致了这个问题,因为当我删除这段代码时,它的效果非常好。此代码的功能是根据浏览器尺寸自动重新调整背景图像的大小。整个代码在主时间轴上运行良好。然而,当我将其移到电影剪辑中时,它导致了一个问题 //set stage for FBF stage.align = "TL"; stage.scaleMode = "noSc

我有两个电影唇在同一个框架上,但在电影唇内的不同层上。第一部电影演得很好。然而,第二个甚至连一帧都没有。我在下面提到的代码位于包含背景图像的第二个movieclip中。我认为这段代码导致了这个问题,因为当我删除这段代码时,它的效果非常好。此代码的功能是根据浏览器尺寸自动重新调整背景图像的大小。整个代码在主时间轴上运行良好。然而,当我将其移到电影剪辑中时,它导致了一个问题

//set stage for FBF
stage.align = "TL";
stage.scaleMode = "noScale";

//define dynamic aspect ratios
var bg_mainHeight = bg_main.height / bg_main.width;
var bg_mainWidth = bg_main.width / bg_main.height;

//add event listener to the stage
stage.addEventListener(Event.RESIZE, sizeListener);

//conditional statement to account for various initial browswer sizes and proportions
function scaleProportional():void {
    if ((stage.stageHeight / stage.stageWidth) < bg_mainHeight) {
        bg_main.width = stage.stageWidth;
        bg_main.height = bg_mainHeight * bg_main.width;
    } else {
        bg_main.height = stage.stageHeight;
        bg_main.width = bg_mainWidth * bg_main.height;
    };  
}

//center bg_mainture on stage
function centerbg_main():void {
    bg_main.x = stage.stageWidth / 1000;
    bg_main.y = stage.stageHeight / 1000;
}

// make listener change bg_mainture size and center bg_mainture on browser resize
function sizeListener(e:Event):void {
    scaleProportional();
    centerbg_main();
}

//run initial locations and size
scaleProportional();
centerbg_main();
//为FBF设置舞台
stage.align=“TL”;
stage.scaleMode=“noScale”;
//定义动态纵横比
变量bg_main height=bg_main.height/bg_main.width;
变量bg_mainWidth=bg_main.width/bg_main.height;
//将事件侦听器添加到阶段
stage.addEventListener(Event.RESIZE,sizeListener);
//用于说明各种初始浏览器大小和比例的条件语句
函数scaleProportional():void{
if((舞台高度/舞台宽度)
是的,通常情况下,如果您的bg_main movieclip的注册点位于中心位置,则会是(假设bg_main已直接添加到舞台):

或者,如果注册点位于左上角,则为:

function centerbg_main():void {
    bg_main.x = 0;
    bg_main.y = 0;
}

您还可以检查两个movieclip是否都正确指定了实例名。

为什么?stage.stageWidth/1000;它被设置为stage.stageWidth/2;最初,它导致bg图像无法正确对齐。整个代码在主时间轴上运行良好。但是,当我将其移到movieclip中时,它会导致问题。您不应该编写“进入movieclip中”(主要用于维护目的)
bg_main
将不存在于您的movieclip中,并且可能会生成错误,请检查您的输出控制台。bg_main是为位于第二个movieclip内的背景图像提供的实例名称。Kodiak是正确的,在movieclips中添加actionscript并不是最好的编码方式,但如果您愿意,可以尝试MovieClip(root.stage.stageWidth)
function centerbg_main():void {
    bg_main.x = 0;
    bg_main.y = 0;
}