Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   почему sprite не отображается как положено ? (http://www.flasher.ru/forum/showthread.php?t=144139)

lance666 03.09.2010 22:37

почему sprite не отображается как положено ?
 
Код AS3:

var sprite:Sprite=new Sprite();
sprite.graphics.lineStyle(1);
sprite.graphics.beginFill(0xff0000);
sprite.width=100;
sprite.height=100;
stage.addChild(sprite);
tf.appendText("w"+sprite.width as String);
}

все свойстыа есть в доках но sprite прозрачен почему нельзя делать его таким каким надо?

Котяра 03.09.2010 22:39

А что вы рисуете в графиксе?
ну установили стиль линии и заливки.. а рисуете то что?

это здесь причем?
Код AS3:

sprite.width=100;
sprite.height=100;


PS оформите код тегами AS3

lance666 03.09.2010 22:41

пробовал и так как вы говорите и stage.addChild(sprite);

Котяра 03.09.2010 22:42

так у вас нет в спрайте ничего.

lance666 03.09.2010 22:49

понятно спасибо, просто не могу привыкуть. Я хочу делать слои аналогично div в html чтобы с заливкой и краями, как понимаю всегда со спрайтом придется юзать shape и заливать его чтобы такое реализовать, но мне все равно не понятно почему я не могу ставить размер к sprite чтобы делать scroll если я рисую квадрат в нем то реализация скрола не применима как быть в таком случае ?

Добавлено через 5 минут
мне не понятно как блин реализовать обьект в котором будет скрол заливка border размер этого обьекта x и y и туда можно будет вставлять картинки и текст. Алгоритм подскажи плс .

TWETTI 03.09.2010 23:06

Код AS3:

var sprite:Sprite=new Sprite();
sprite.graphics.lineStyle(1);
sprite.graphics.beginFill(0xff0000);
sprite.drawRect(0, 0, 100, 100);
sprite.endFill();
addChild(sprite);


dimarik 03.09.2010 23:08

Цитата:

мне не понятно как блин реализовать обьект в котором будет скрол заливка border размер этого обьекта x и y и туда можно будет вставлять картинки и текст. Алгоритм подскажи плс .
Алгоритм простой. Стройте Дерево. По аналогии с браузерным DOM'ом. Дерево в нашем случае представляет иерархию визуальных объектов на экране. Дерево состоит из контейнеров (наследники DisplayObjectContainer), в которые можно поместить листья (наследники DisplayObject, которые не могут иметь детей) и другие контейнеры.
Листья в Вашем случае - картинки (Bitmap) и текст (TextField), а контейнером будет то, что их содержит (обычно Sprite). Border можно пририсовать этому контейнеру через свойство Sprite#graphics. А скролл - это отдельный составной древовидный объект. Он даже может входить в состав детей исходного спрайта, а может... и не входить в него. Зависит от предпочтений программиста )

ЗЫ. блины на кухне.

lance666 03.09.2010 23:10

Спасибо большое теперь и высота с широной спрайта отображаются )

Добавлено через 4 минуты
Со скролом я пока разобрался только в текстфилде =D , но думаю теперь когда мой спрайт, после рисования, имеет высоту и ширину разберусь и с прокруткой в спрайте. Спасибо за помощь

dimarik 03.09.2010 23:18

Подправили бы Вы орфографию и пунктуацию ). Здесь стараются общаться грамотно.

lance666 03.09.2010 23:31

Попробовал сделать спрайт в спрайте, если родительский имеет размер меньше то дочерний вылазиет за его пределы. Как с этим боротся ? Надо чтобы не вылазило ничего )

Psycho Tiger 03.09.2010 23:44

Код AS3:

tf.appendText("w"+sprite.width as String);

Блуд недавно в моём блоге говорил, что as занимается приведением типов, а тут нужно конвертирование =)
Код AS3:

String(sprite.width);

Цитата:

Подправили бы Вы орфографию и пунктуацию ). Здесь стараются общаться грамотно.
У меня кстати это в привычку вошло. А начинал с флешера. )

dimarik 03.09.2010 23:48

Цитата:

Сообщение от lance666 (Сообщение 933393)
Попробовал сделать спрайт в спрайте, если родительский имеет размер меньше то дочерний вылазиет за его пределы. Как с этим боротся ? Надо чтобы не вылазило ничего )

Неправда )

спросите размеры у родительского спрайта. Bounding box родителя точно соответствует площади, занимаемой его детьми.

Может Вы забыли перерисовать graphics? :)

Добавлено через 13 минут
Программно нарисованное на graphics контейнера не масштабируется. Однако, включается в расчет размера контейнера. Предположим, что с помощью graphics Вы нарисовали на Sprite прямоугольник 5x30 пикселей. Размер Sprite будет составлять 5x30 px. Теперь Вы добавили в него другой спрайт размером 10x20 px и установили ему координату x=20. Размер родителя теперь составит (20 + 10)x30 px. Вообще, есть прекрасное свойство DisplayObject#opaqueBackground. Примените к родительскому контейнеру
Код AS3:

myContainer.opaqueBackground= 0xFF0000;

И очень наглядно будет видно его bounding box.

lance666 04.09.2010 00:10

Спасибо за помощь, сегодня уже не осилю, но завтра попытаюсь справится с этой задачей :-)

Добавлено через 10 минут
Код:

Может Вы забыли перерисовать graphics?
Каждый раз надо перерисовывать sprite после добавление нового обьекта в него?=D

Добавлено через 18 минут
Шайтан машина =D .
Сделал Sprite-> туда добаил textfield который больше спрайта -> перерисовал Sprite
Итог TF отмасштабировался и вписался туда =D

Как же его туда засунуть чтоб нижняя часть пряталась а скролом я мог ее поднять=D
скрол с Tf просто scroll и sprite полная каша (

dimarik 04.09.2010 00:29

Перерисовывать нужно graphics

Код AS1/AS2:

private function redrawBackground():void {
    var g:Graphics = this.graphics;
    g.clear();
    g.beginFill();
    // do other
}


В таком случае, да. Но есть вариант с масштабированием другого визуального объекта, в котором отрисован graphics хоть с 1x1 рх непосредственным заданием его размеров.

Добавлено через 4 минуты
Цитата:

Как же его туда засунуть чтоб нижняя часть обрезалась
Вот тут не понял. Зачем и чья нижняя часть должна обрезаться?

lance666 04.09.2010 00:35

я поправился пряталась )

dimarik 04.09.2010 01:50

А. Ну это
Код AS1/AS2:

DisplayObject#scrollRect
 или
DisplayObject#mask

по вкусу.


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

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