【问题标题】:Aligning Movieclip with root/stage Movieclip将影片剪辑与根/阶段影片剪辑对齐
【发布时间】:2010-04-23 16:18:19
【问题描述】:

如何将动态影片剪辑位置与另一个处于根阶段的影片剪辑对齐? 我试图让 mc 在根 x,y 位置,但加载动态 MC 的类的起点似乎并不准确。 (意思是在根阶段,x,y 是 0,0,但在动态类中,对于浏览器区域来说,它大约是 100,20(实际上它会根据浏览器的大小而有所不同))

**我用来运行下面自定义类的其他类,我已经将这个MC添加到舞台

var blocker:stageBlocker=new stageBlocker();
        this.stage.addChild(blocker);

下面是动态MC。我不应该将它添加到自己的“阶段”吗?

public class stageBlocker extends MovieClip {

    private var blocker:MovieClip= new MovieClip();

    public function stageBlocker():void {
        addEventListener(Event.ADDED_TO_STAGE, add2Stage);
    }
    private function add2Stage(event:Event):void {
        createBlocker();
    }

    private function createBlocker():void {
        blocker.graphics.beginFill(0x000000,0.9);
        blocker.graphics.drawRect(0,0,stage.stageWidth,stage.stageHeight);
        blocker.graphics.endFill();
        addChild(blocker);
        blocker.x=main.vC.x
    }

    public function removeBlocker():void {
        blocker.graphics.clear();
        removeChild(blocker);
        removeEventListener(Event.ADDED_TO_STAGE, add2Stage);
    }
}

【问题讨论】:

    标签: actionscript-3 alignment stage


    【解决方案1】:

    尝试将舞台对齐设置为左上角:

    stage.scaleMode = StageScaleMode.NO_SCALE;
    stage.align = StageAlign.TOP_LEFT;
    

    【讨论】:

    • 我试过了,但是当拦截器被调用时,整个舞台/屏幕位置会改变。这就是为什么我想看看是否有办法让它根据根/阶段运行它的位置。我现在正在尝试 localToGlobal 但仍然不明白如何使用它。
    • 或者有没有办法在我删除它后将 stage.align 更改回中心。 AS3 似乎不再与中心代码对齐了 :(
    • 可能如果你将它设置为 null 将居中。但我认为如果你需要的话,你设计得不好。我不太了解您要执行的操作,但我正在执行与 top_left 对齐的每个应用程序,并且我从未遇到过问题。
    猜你喜欢
    • 1970-01-01
    • 2011-01-19
    • 2017-08-23
    • 1970-01-01
    • 1970-01-01
    • 2017-06-24
    • 1970-01-01
    • 2015-04-24
    • 2016-09-10
    相关资源
    最近更新 更多