Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   width heigth шейпа не совпадают с размерами сцены (http://www.flasher.ru/forum/showthread.php?t=145510)

FriOne 10.10.2010 23:48

width heigth шейпа не совпадают с размерами сцены
 
нарисовал квадрат в Shape, по ENTER_FRAME увеличиваю его ширину, а затем высоту..
Размер сцены сделал 800х400, увеличиваю высоту например до 400, трэйсю, выводит высоту 400..( Но квадрат не дошел до краев сцены, подскажите в чем проблема.
пишу так
Код AS1/AS2:

private function create():void
{
                                // Контейнер для сдвига шейпа в центр
                                conteiner = new Sprite();
                                conteiner.x = maxwidth/2-1;
                                conteiner.y = maxheight/2-1;
 
                                var fillType:String = GradientType.LINEAR;
                                var matr:Matrix = new Matrix();
                            matr.createGradientBox(minwidth*2/3, minheight*2/3, 45, 0, 0);
 
                                bar = new Shape();
                                bar.graphics.lineStyle(1,0x000000, 1,false,"none");
                                bar.graphics.beginGradientFill(fillType, color, alphas,ratios, matr);
                                bar.graphics.drawRect(0,0,maxwidth,maxheight);
                                bar.graphics.endFill();
 
                                addChild(conteiner);
                                conteiner.addChild(bar);
                                addEventListener(Event.ENTER_FRAME,show);
                        }
                        private function show(e:Event):void
                        {
                                if(bar.width != maxwidth){
                                        bar.width += 10;
                                        conteiner.x -= 3;
                                }
                                else if(bar.height != maxheight){
                                        bar.height += 10;
                                        conteiner.y -= 3;
                                }
                                else{
                                        removeEventListener(Event.ENTER_FRAME,show);
                                }
}


samana 11.10.2010 22:10

Хм... ничего не понимаю, в вашем коде вы создаёте bar с размерами (maxwidth maxheight), и тут же проверяете его размер...
Код AS3:

if(bar.width != maxwidth)...

но ширина bar с рождения равняется maxwidth, это касается и высоты, и цикл сразу переходит к else.... и ентерФрейм удаляется так ничего и не сделав. Вы ничего не перепутали?

iCluster 11.10.2010 22:18

Может быть не доходит потому, что вы сдвигаете его на 3, а увеличиваете на 5 в каждую сторону?

samana
Кстати да, нормальное движение появилось лишь после того, как заменил max на min ))


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

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