away3d和starling resizing问题

时间:2013-03-01 16:19:40

标签: actionscript-3 stage3d away3d starling-framework robotlegs

我在尝试正确地调整第三阶段的第三阶段中的off3d Gold和Starling时都遇到了问题。

我有4个starling实例和1个由stage3dProxys处理的Away3d实例。

这一切都在初始尺寸上完美。在浏览器中调整游戏大小时会出现问题。

游戏.swf最终将由另一个父.swf加载,但是当游戏直接加载到它自己的HTML模板上时,同样的事情就会发生。

我现在拥有的是:

stage.addEventListener( Event.RESIZE, onResize, false, 0, true );

    private function onResize(event:Event):void {
            _stage3DProxy.width = stage.stageWidth;
            _stage3DProxy.height = stage.stageHeight;
    
    
        }

它适用于starling实例,但不适用于远离3d实例。 并且它没有显示应该在舞台之外的切割图像。

我也尝试过不成功:

starling.stage.stageWidth = this.stage.stageWidth;
             starling.stage.stageHeight = this.stage.stageHeight;

             var viewPort:Rectangle = RectangleUtil.fit(
                new Rectangle(0, 0, stage.stageWidth, stage.stageHeight),
                new Rectangle(0, 0, stage.fullScreenWidth, stage.fullScreenHeight),
            ScaleMode.NO_BORDER);

         Starling.current.viewPort = viewPort;

我希望实现的是在将尺寸设置为“百分比”时将传感器设置为:"NO_BORDER"并将对齐设置为:"Top Center",最小高度和宽度。< / p>

如何实现这一目标?

谢谢

马捷

2 个答案:

答案 0 :(得分:3)

Away3D中

好吧,我发现重新调整大小的方法是更新视图。您可以将flash.display.Sprite容器放置在添加了离开场景的位置或视图自定位中心或重新定位。

这是一个棘手的想法,因为你必须找出scaleX&amp;的视图方法。 scaleY是' DEAD END ,这意味着它们是空方法,不会发生任何变化。所以你真的必须&amp;只能更改width&amp; height属性。

此处列出View3D的所有 DEAD END 方法,就像它们出现在源代码中一样:

// dead ends:
    override public function set z(value : Number) : void {}
    override public function set scaleZ(value : Number) : void {}
    override public function set rotation(value : Number) : void {}
    override public function set rotationX(value : Number) : void {}
    override public function set rotationY(value : Number) : void {}
    override public function set rotationZ(value : Number) : void {}
    override public function set transform(value : Transform) : void {}
    override public function set scaleX(value : Number) : void {}
    override public function set scaleY(value : Number) : void {}

斯塔林

在团队实验之后,我们项目中的工作原理如下:

目标:重新调整背景大小,就像将尺寸设置为percentage时缩放到NO_BORDER并对齐到:{{1 }}

Top Center

答案 1 :(得分:1)

我认为你不能通过在stage3DProxy上设置width / height属性来调整away3d实例的大小。我通过在view3D上设置宽度/高度来实现这个:

    view = new View3D();

    //...later

    private function stageResizeHandler(evt:Event):void
    {
        view.width = stage.stageWidth;
        view.height = stage.stageHeight;
    }