Flex MXML UIComponent - PullRequest
       0

Flex MXML UIComponent

0 голосов
/ 11 июля 2011

Я только начинаю работать с flex, и у меня возникла проблема с чем-то, что я нашел. Я начал использовать MXML для состояний и тому подобного, но когда я пытаюсь что-то обновить, то, что отображается на экране, становится странным. Он обновляет то, что происходит, но не стирает предыдущий кадр, так что, похоже, он не обновляет все. Я предполагаю, что это поведение UIComponent, но есть ли вокруг этого? Ниже приведен код, который у меня есть. Я использую as3isolib для игры и пытаюсь заставить его работать во флексах. Спасибо!

    <mx:Script>

        <![CDATA[
            import as3isolib.display.IsoSprite;
            import as3isolib.display.IsoView;
            import as3isolib.display.primitive.IsoBox;
            import as3isolib.display.scene.IsoGrid;
            import as3isolib.display.scene.IsoScene;
            import as3isolib.geom.IsoMath;
            import as3isolib.geom.Pt;
            import as3isolib.graphics.Stroke;

            import eDpLib.events.ProxyEvent;

            import flash.display.Sprite;
            import flash.events.Event;
            import flash.events.MouseEvent;

            protected var inGame:Boolean = false;
            private var grid:IsoGrid;
            private var scene:IsoScene;
            private var box:IsoBox;

            private static const CELL_SIZE:Number = 50;

            public function creationComplete():void 
            {
            }

            public function enterFrame(event:Event):void    
            {
                if(inGame)
                {
                    grid = new IsoGrid();
                    grid.addEventListener(MouseEvent.CLICK, gridClick);
                    grid.setGridSize(10,10,1);
                    grid.showOrigin = false;
                    grid.cellSize = CELL_SIZE;

                    box = new IsoBox();
                    box.setSize(CELL_SIZE, CELL_SIZE, CELL_SIZE);
                    box.moveTo(CELL_SIZE, CELL_SIZE, 0);

                    scene = new IsoScene();
                    scene.hostContainer = isoHostContainer;
                    scene.addChild(grid);
                    scene.addChild(box);
                    scene.render();
                }
            }
            private function gridClick(event:ProxyEvent)
            {
                var me:MouseEvent = MouseEvent(event.targetEvent);
                var p:Pt = new Pt(me.localX, me.localY);
                IsoMath.screenToIso(p);
                box.moveTo(Math.floor(p.x/CELL_SIZE)*CELL_SIZE, Math.floor(p.y/CELL_SIZE)*CELL_SIZE, 0);
                scene.render();
            }
            protected function startGameClicked(event:Event):void   
            {
                currentState = "Game"   
            }
            protected function enterGame(event:Event):void  
            {
                //              GameObjectManager.Instance.startup();
                inGame = true;  
            }
            protected function exitGame(event:Event):void   
            {
                inGame = false; 
            }       
        ]]> 
    </mx:Script>

    <mx:Panel width="100%" height="100%" layout="absolute" verticalCenter="0" horizontalCenter="0">

        <mx:UIComponent id="isoHostContainer" verticalCenter="0" horizontalCenter="0" mask="{maskContainer}"/>
        <mx:Container id="maskContainer" width="100%" height="100%" backgroundColor="red"/>

    </mx:Panel>
</mx:Application>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...