Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Не работает stageWidth, stageHeight (http://www.flasher.ru/forum/showthread.php?t=169913)

Genzo 14.10.2011 15:05

Код AS3:

package 
{
        import flash.display.Stage
        import flash.display.BitmapData;
        import flash.display.Sprite;
        import flash.display.StageAlign;
        import flash.display.StageScaleMode;
        import flash.events.Event;
        import flash.filters.GlowFilter;
        import flash.geom.Matrix;
        import flash.geom.Point;
 
        public class LEDmatrix extends Sprite
        {
                private var bmpd1:BitmapData;
                private var bmpd2:BitmapData;
                private var LEDobj:LED;
                private var LEDobj2:LED;
                private var w:int;
                private var h:int;
 
                public function LEDmatrix()
                {
                        if(super.stage)
                        {
                                init();
                        }
                        else
                        {
                                // Получаем размер рабочей области
                                this.addEventListener(Event.ADDED_TO_STAGE, init);
                        }
 
 
 
 
                }
                public function init(e:Event = null):void
                {
                        if(this.hasEventListener(Event.ADDED_TO_STAGE))
                        {
                                this.removeEventListener(Event.ADDED_TO_STAGE, onAdded);
                        }
                        stage.align = StageAlign.TOP_LEFT;
                        stage.scaleMode = StageScaleMode.NO_SCALE;
                        var w:int = stage.stageWidth;
                        var h:int = stage.stageHeight;
                        trace("размер по горизонтали = ",h, "размер по вертикали = ", w);
                        //создаем две звезды и добавляем их в список отображения
                        runProgramm();
                }
                private function runProgramm():void
                {
                // Определяем размер светодиода
                        var size:Number = 3;
 
                        //Зазор между светодиодами
                        var LEDgap:Number = size + 6;
 
                        // Определяем отступы от краев раб.обл.(слева и сверху); размер светодиода делённый надвое
                        var identX:Number = size / 2;
                        var identY:Number = identX;
 
                        // Колличество светодиодов по горизонтали
                        var LEDamtX:Number = Math.ceil(w / LEDgap);
 
                        // Колличество светодиодов по вертикали
                        var LEDamtY:Number = Math.ceil(h / LEDgap);
 
                        LEDobj = new LED(60);//рисунок
                        LEDobj.LEDlight = false;
                        LEDobj.x = 200;
                        LEDobj.y = 100;
                        addChild(LEDobj);
 
                        // Строим сетку из светодиодов:
                        //сначала вертикаль
                        for (var i:int=0; i<LEDamtX; i++)
                        {
                                //затем горизонталь
                                for (var n:int=0; n<LEDamtY; n++)
                                {
                                        //  Создаём светодиодную матрицу из заранне заготовленных мувиклипов
                                        var LEDobj2:LED = new LED(size);
                                        var xn:Number = i * LEDgap + identX;
                                        var yn:Number = n * LEDgap + identY;
                                        LEDobj2.x = xn;
                                        LEDobj2.y = yn;
                                        LEDobj2.LEDlight = false;//выключаем СВЕТОДИОДЫ
                                        addChild(LEDobj2);
 
 
                                }
                        }
 
 
                        // создаем два растровых изображения
                        bmpd1 = new BitmapData(stage.stageWidth,stage.stageHeight,true,0);
                        bmpd2 = bmpd1.clone();
 
                        // очищаем растровые изображения
                        bmpd1.fillRect(bmpd1.rect, 0);
                        bmpd2.fillRect(bmpd2.rect, 0);
 
                        // отрисовываем каждую звезду в своем растровом изображении
                        bmpd1.draw(LEDobj, new Matrix(1, 0, 0, 1, LEDobj.x, LEDobj.y));
                        bmpd2.draw(LEDobj2, new Matrix(1, 0, 0, 1, LEDobj2.x, LEDobj2.y));
 
                        // проверяем столкновение
                        if (bmpd1.hitTest(new Point(), 255, bmpd2, new Point(), 255))
                        {
                                LEDobj2.graphics.clear();
                                LEDobj2.LEDlight = true;// оранджевый
                        }
                        else
                        {
                                LEDobj.visible = false;
                                LEDobj.LEDlight = false;// серый
                        }
                }
        }
}


Inet_PC 14.10.2011 15:08

Код AS3:

package 
{
        import flash.display.Stage
        import flash.display.BitmapData;
        import flash.display.Sprite;
        import flash.display.StageAlign;
        import flash.display.StageScaleMode;
        import flash.events.Event;
        import flash.filters.GlowFilter;
        import flash.geom.Matrix;
        import flash.geom.Point;
 
        public class LEDmatrix extends Sprite
        {
                private var bmpd1:BitmapData;
                private var bmpd2:BitmapData;
                private var LEDobj:LED;
                private var LEDobj2:LED;
                private var w:int;
                private var h:int;
 
                public function LEDmatrix()
                {
                        super();
                        addEventListener(Event.ADDED_TO_STAGE, onAdded);
                }
 
                private function onAdded(e: Event):void
                {
                        removeEventListener(Event.ADDED_TO_STAGE, onAdded);
 
                        stage.align = StageAlign.TOP_LEFT;
                        stage.scaleMode = StageScaleMode.NO_SCALE;
 
                        //создаем две звезды и добавляем их в список отображения
 
 
                        // Получаем размер рабочей области
 
 
                        var w:int = stage.stageWidth;
                        var h:int = stage.stageHeight;
                        trace("размер по горизонтали = ",h, "размер по вертикали = ", w);
 
                                // Определяем размер светодиода
                        var size:Number = 3;
 
                        //Зазор между светодиодами
                        var LEDgap:Number = size + 6;
 
                        // Определяем отступы от краев раб.обл.(слева и сверху); размер светодиода делённый надвое
                        var identX:Number = size / 2;
                        var identY:Number = identX;
 
                        // Колличество светодиодов по горизонтали
                        var LEDamtX:Number = Math.ceil(w / LEDgap);
 
                        // Колличество светодиодов по вертикали
                        var LEDamtY:Number = Math.ceil(h / LEDgap);
 
                        LEDobj = new LED(60);//рисунок
                        LEDobj.LEDlight = false;
                        LEDobj.x = 200;
                        LEDobj.y = 100;
                        addChild(LEDobj);
 
                        // Строим сетку из светодиодов:
                        //сначала вертикаль
                        for (var i:int=0; i<LEDamtX; i++)
                        {
                                //затем горизонталь
                                for (var n:int=0; n<LEDamtY; n++)
                                {
                                        //  Создаём светодиодную матрицу из заранне заготовленных мувиклипов
                                        var LEDobj2:LED = new LED(size);
                                        var xn:Number = i * LEDgap + identX;
                                        var yn:Number = n * LEDgap + identY;
                                        LEDobj2.x = xn;
                                        LEDobj2.y = yn;
                                        LEDobj2.LEDlight = false;//выключаем СВЕТОДИОДЫ
                                        addChild(LEDobj2);
 
 
                                }
                        }
 
 
                        // создаем два растровых изображения
                        bmpd1 = new BitmapData(stage.stageWidth,stage.stageHeight,true,0);
                        bmpd2 = bmpd1.clone();
 
                        // очищаем растровые изображения
                        bmpd1.fillRect(bmpd1.rect, 0);
                        bmpd2.fillRect(bmpd2.rect, 0);
 
                        // отрисовываем каждую звезду в своем растровом изображении
                        bmpd1.draw(LEDobj, new Matrix(1, 0, 0, 1, LEDobj.x, LEDobj.y));
                        bmpd2.draw(LEDobj2, new Matrix(1, 0, 0, 1, LEDobj2.x, LEDobj2.y));
 
                        // проверяем столкновение
                        if (bmpd1.hitTest(new Point(), 255, bmpd2, new Point(), 255))
                        {
                                LEDobj2.graphics.clear();
                                LEDobj2.LEDlight = true;// оранджевый
                        }
                        else
                        {
                                LEDobj.visible = false;
                                LEDobj.LEDlight = false;// серый
                        }
                }
        }
}



Часовой пояс GMT +4, время: 09:59.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.