Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Параметры MovieClip из конструктора? (http://www.flasher.ru/forum/showthread.php?t=137252)

aassaaa 09.03.2010 09:36

Параметры MovieClip из конструктора?
 
Столкнулся с новой не понятной для меня ситуацией.
Значит общая цель у меня - создать MovieClip не привязанный к какому-либо графическому обьекту и самостоятельно с помощу flash.display.Graphics нарисовать там окружность нужного диаметра. Но до рисования окружности столкнулся с тем, что не могу настроить размер клипа!

Написал главный класс:
Код AS3:

package {
        import flash.display.MovieClip;
        import Ball;
 
        public class Main extends MovieClip {
 
                public function Main () {
 
                        var ball:Ball = new Ball();
 
                        ball.x = stage.stageWidth / 2;
                        ball.y = stage.stageHeight / 2;
                        addChild(ball);
 
                }
 
 
        }       
}

а за ним и Ball (напомню что для него нет в библиотеке граф. обьекта)
Код AS3:

package 
{
        import flash.display.Graphics;
        import flash.display.MovieClip;
 
        public class Ball extends MovieClip
        {
                public var r:Number;
 
                public var g:Graphics = graphics;
 
                public function Ball (r:Number = 50) {
                        this.r = r;
                        this.width = this.height = r;
 
                        trace('r=',this.r,'width=',this.width,'height=',height);
 
                }
 
        }
 
}

Output: r= 50 width= 0 height= 0
Но почему width и height все еще нули? Обьясните пожалуйста, а то в спешке купил книгу и в ней как-то очень мало информации, а за активно здесь продвигаемым Муком пока выйти возможности нет..

iNils 09.03.2010 10:03

Размер клипа, это размер его содержимого. А ваш клип пустой, поэтому вы пытаетесь задать размер пустоте.

aassaaa 09.03.2010 10:22

ну хорошо. на самом деле я пытался нарисовать окружность и конструктор у меня выглядел след. образом:
Код AS3:

                public function Ball (r:Number = 50) {
 
                        this.r = r;
                        this.width = this.height = r;
 
                        //trace('r=',this.r,'width=',this.width,'height=',height);
 
                        g.lineStyle(6, 0x0000FF, .5);
                        g.beginFill(0x0000FF, .8);
                        g.drawCircle(r, r, r);
                        g.endFill();
 
                }

вот только ничего не нарисовалось

Добавлено через 3 минуты
А все понял. сначала рисуем -потом ставим размер)

Код AS3:

        public class Ball extends MovieClip 
        {
                public var r:Number;
                public var _parent:Ball;
 
                public var g:Graphics = graphics;
 
                public function Ball (r:Number = 50) {
 
                        this.r = r;
 
                        //trace('r=',this.r,'width=',this.width,'height=',height);
 
                        g.lineStyle(6, 0x0000FF, .5);
                        g.beginFill(0x0000FF, .8);
                        g.drawCircle(r, r, r);
                        g.endFill();
 
                        this.width = this.height = r;
 
                }
 
        }

Спасибо

Добавлено через 6 минут
А как сделать чтобы в этом случае точка this.x;this.y отвечала не верхней-левой точке, а центральной?

iNils 09.03.2010 10:51

Код AS3:

g.drawCircle(0, 0, r);



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

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