Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   При присвоении значения width пропадает child (http://www.flasher.ru/forum/showthread.php?t=114763)

sospamom 08.08.2008 11:15

При присвоении значения width пропадает child
 
Код:

package code{
        import flash.display.*;
        import flash.events.*;
        import flash.ui.*;
        import flash.geom.*;
       
        public class Problem extends Sprite{
                public function Problem(){
                        //width = 300;

                       
                        var border:Shape = new Shape();
                        border.graphics.lineStyle(1);
                        border.graphics.drawRect(20, 20, 100, 100);
                        addChild(border);
                }
        }
}

Если с width снять комментарий, то border пропадает. Почему?

CEBEP 08.08.2008 11:39

а к чему относится этот width там?

sospamom 08.08.2008 12:32

Я думаю, что width относится к экземпляру класса Problem.
Переписал код так:
Код:

package code{
        import flash.display.*;
        import flash.events.*;
        import flash.ui.*;
        import flash.geom.*;
       
        public class Problem extends Sprite{
                public function Problem(){
                        addEventListener(Event.ADDED_TO_STAGE,addedToStageListener);
                }
                private function addedToStageListener(e:Event):void        {
                       
                        width = 800;

                        var border:Shape = new Shape();
                        border.graphics.lineStyle(1);
                        border.graphics.drawRect(20, 20, 100, 100);
                        addChild(border);
                }
        }
}

Всё равно border нет.

2morrowMan 08.08.2008 12:49

А зачем там вообще "width = 800;" ? )

В конце поставте "trace(this.scaleX);" и может поймете. )

sospamom 08.08.2008 13:26

Цитата:

Сообщение от 2morrowMan (Сообщение 757034)
А зачем там вообще "width = 800;" ? )

Ну там ещё в реальной программе есть и height. Хочу в данных пределах реагировать на мышь.

Цитата:

Сообщение от 2morrowMan (Сообщение 757034)
В конце поставте "trace(this.scaleX);" и
может поймете. )

не смог понять

CEBEP 08.08.2008 13:51

width сам по себе существовать не может, это свойсво.
ты шас просто зарезервирванное слово юзаешь

Alkaz 08.08.2008 15:06

Цитата:

Сообщение от CEBEP (Сообщение 757047)
width сам по себе существовать не может, это свойсво.
ты шас просто зарезервирванное слово юзаешь

width относится к данному экземпляру класса, собственно тоже самое что и this.width .

sospamom 08.08.2008 15:27

Цитата:

Сообщение от CEBEP (Сообщение 757047)
width сам по себе существовать не может, это свойсво.
ты шас просто зарезервирванное слово юзаешь

По моим представлениям width является свойством экземпляра класса Problem.

2morrowMan 08.08.2008 15:42

Цитата:

Сообщение от sospamom (Сообщение 757041)
Хочу в данных пределах реагировать на мышь.

Тогда почитайте в хелпе о Sprite.hitArea — это то что вам надо.

sospamom 08.08.2008 16:20

Цитата:

Сообщение от 2morrowMan (Сообщение 757065)
Тогда почитайте в хелпе о Sprite.hitArea — это то что вам надо.

То есть мне обязательно надо чем-то залить Sprite, чтобы он мог реагировать на мышь?

mre 08.08.2008 16:37

Пустой спрайт не может иметь ширины.

crazyone 08.08.2008 16:43

Насколько я знаю, если абсолютно пустому(как у вас) спрайту менять значения width и height, его scaleX становится равна нулю, потому что деление на ноль и все такое:
Код:

var mc:Sprite= new Sprite();
trace(mc.scaleX);//1
mc.width=10;
trace(mc.scaleX);//0


CEBEP 08.08.2008 17:46

я всё равно не понял, что пытаются сделать.

А прозрачным спраитом нельзя заполнить?

sospamom 09.08.2008 15:25

Цитата:

Сообщение от CEBEP (Сообщение 757089)
я всё равно не понял, что пытаются сделать.

А прозрачным спраитом нельзя заполнить?

1) Я хочу, чтобы пустой спрайт реагировал на mousemove по ней.
2) Как залить прозрачным спрайтом?

Яски 09.08.2008 16:13

Цитата:

Сообщение от sospamom (Сообщение 757199)
1) Я хочу, чтобы пустой спрайт реагировал на mousemove по ней.
2) Как залить прозрачным спрайтом?

1) Как он будет реагировать на том чего нет?
2)
Код:

graphics.beginFill(0, 0);
graphics.drawRect(0,0,width, height);


sospamom 11.08.2008 09:21

1) пустой спрайт это по-твоему не объект? :) Он же имеет width и height, значит должен реагировать :)

Яски 11.08.2008 23:37

и чему равны его width и height?


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

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