【问题标题】:How to attach a moiveClip into as3isolib grid?如何将 moiveClip 附加到 as3isolib 网格中?
【发布时间】:2014-01-13 12:14:07
【问题描述】:

我是使用 AS3 和 as3isolib 的初学者。我正在尝试将 fla 库中的一些 MC 添加到 isoGrid 对象中。我尝试使用 IsoGrid 类的 addChild() 方法,但它给了我一个错误消息:1067:将 [MovieClip Name] 类型的值隐式强制转换为不相关的类型 as3isolib.data:INode。我认为希望我使用节点类。

知道如何做这样的事情吗?

提前谢谢你。

【问题讨论】:

    标签: actionscript-3 flash-cs5


    【解决方案1】:

    as3isolib 使用它自己的display list 类似渲染树,添加此树中的所有节点必须实现as3isolib.data:INode。向IsoScene 添加 Flash 原生显示对象有两种可能性:

    看看这个小教程:

        //create IsoView, IsoScene and IsoGrid - default from as3isolib
        var view:IsoView = new IsoView();
        view.setSize(stage.stageWidth, stage.stageHeight);
        addChild(view);
    
        var scene:IsoScene = new IsoScene();
        view.addScene(scene);
    
        var grid:IsoGrid = new IsoGrid({cellSize:32});
        grid.setGridSize(800, 600);
        grid.stroke = new Stroke(0, 0x576F33);
        grid.render();
    
        //create iso box, just for demo
        var obj:IsoBox = new IsoBox();
        obj.setSize(32, 32, 64);
        obj.moveTo(5*32, 5*32, 1);
    
        //first possiblity to add flash.display.Shape to the iso scene - using IsoSprite.sprites
        var isoSprite:IsoSprite = new IsoSprite();
        isoSprite.moveTo(5*32, 7*32, 1);
    
        var shape1:Shape = new Shape();
        shape1.graphics.beginFill(0xFF0000, 1);
        shape1.graphics.drawRect(0, 0, 32, 32);
        isoSprite.sprites = [shape1];
    
        //second possiblity to add flash.display.Shape to the iso scene - using IsoDisplayObject.container
        var isoObj:IsoDisplayObject = new IsoDisplayObject();
        isoObj.moveTo(7*32, 7*32, 1);
    
        var shape2:Shape = new Shape();
        shape2.graphics.beginFill(0x0000FF, 1);
        shape2.graphics.drawRect(0, 0, 32, 32);
        isoObj.container.addChild(shape2);
    
        //add all objects to the scene and render all
        scene.addChild(grid);
        scene.addChild(obj);
        scene.addChild(isoSprite);
        scene.addChild(isoObj);
        scene.render();
    

    【讨论】:

    • 这就是我正在寻找的答案。非常感谢我的朋友^^。
    猜你喜欢
    • 2018-05-30
    • 2018-07-06
    • 1970-01-01
    • 1970-01-01
    • 2021-04-10
    • 1970-01-01
    • 1970-01-01
    • 2015-08-24
    • 1970-01-01
    相关资源
    最近更新 更多