Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Контейнеры As3 (http://www.flasher.ru/forum/showthread.php?t=169406)

savva 04.10.2011 19:40

Контейнеры As3
 
Здравсвуйте.

Упорно гуглил тему,но ничего толкового не нашёл применительно к чистым AS3 проектам.

Задача реализовать рамку-контейнер в которую можно добавлять картинки.

т.к. AS3 проект библиотеками mx пользоваться не могу (я нашёл какой-то супер изощрённый способ,но не хочу заморачиваться с ним).

Собственно как реализовать? Или что смотреть? Какую-то стороннюю библиотеку использовать?

toFL 04.10.2011 19:42

Цитата:

реализовать рамку-контейнер в которую можно добавлять картинки.
Откуда добавлять картинки? Как добавлять картинки? Как их сортировать? Что делать с ними дальше? и еще миллион вопросов. Предлагаю вам выложить screenshot, как вы это видите.

ChuwY 04.10.2011 19:43

Рамка?
Если я правильно понял, то подходит fl.containers.UILoader
И у greensock есть какой-то класс для этого, более замороченный.

savva 04.10.2011 19:51

Какая разница откуда и как добавлять? какая разница как сортировать?

мне нужна рамка которая будет не на весь размер приложения,с вероятно sprite внутри в которой я буду производит addchild removechild картинок.

Рамка-это квадрат/прямоугольник размер которого задаётся относительно размеров stage. что-нибудь в стиле stage.height и stage.width/2.

Inet_PC 04.10.2011 19:56

Цитата:

Какая разница откуда и как добавлять? какая разница как сортировать?
Какая разница тогда вам помогать? Телепатов нет,
а в чем проблема? Sprite.graphics, не?

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

мне нужна рамка
С этим вам сюда!

savva 04.10.2011 20:57

Хорошо.

из xml парсится в дерево СД. в этой СД хранится src изображения.

в рамке находится голова дерева.(сразу загружается). при нажатии на на изображение (точнее на определённую часть экрана(буду добавлены стрелки),изображение меняется на другое исходя из данных о координате нажатия и дерева изображений).

Нужно чтобы изображение растягивалось на 75% экрана браузера (ну и естественно resize), соответственно его нужно как-то ограничить-на ум приходит рамка. Сортировать не надо,поскольку в XML уже всё отсортировано и добавлено в дерево в нужной последовательности. 25% экрана будет использоваться под меню и прочие кнопки.

Проблема как организовать эту рамку и как в неё передавать изображение? нужен ли внутри спрайт,или я могу передавать в рамку спрайт из другого класса.

goodguy 04.10.2011 21:04

Собственно, спрайт - это и есть контейнер. Рамку в спрайте можно нарисовать примерно так:
Код AS3:

sprite.graphics.lineStyle(1, 0x00FF00, 1);
sprite.graphics.beginFill(0x000000, 1);
sprite.graphics.drawRect(0, 0, imageWidth, imageHeight);
sprite.graphics.endFill();

Но никакого ограничения тут не будет. Нужно как раз расчитывать нужную ширину и высоту изображения

savva 04.10.2011 21:12

У меня получается обратная ситуация,у меня sprite с рамкой имеет постоянный размер

stage.height 3*stage.width/4.

Но мне неизвестны размеры изображений (они будут примерно одинаковыми).

и ещё мне поверх этого изображения нужно будет кидать ещё изображения,то бишь добавлять child[0] или как то так(не помню как делается).

dimarik 04.10.2011 21:16

Сдается мне, — не рамка нужна, но грамотный ресайз сабжа. Отныне не упоминаем здесь про рамку, — ибо путает оно нас, грешных. Аминь.

goodguy 04.10.2011 22:13

А мне сдается, что надо юзать stage.stageHeight и stage.stageWidth вместо stage.width и stage.height, ибо выдают они размеры сцены учитывая все барахло, что в на ней валяется, а не реально видимую её часть.

dimarik 04.10.2011 22:47

В общем, договорились, что рамка не нужна.

savva 04.10.2011 23:03

Цитата:

Сообщение от goodguy (Сообщение 1036795)
А мне сдается, что надо юзать stage.stageHeight и stage.stageWidth вместо stage.width и stage.height, ибо выдают они размеры сцены учитывая все барахло, что в на ней валяется, а не реально видимую её часть.

Я про такие и не знал. В чём разница мне не совсем понятна.


рамка-это граница спрайта (или контейнера который будет использоваться) в котором будет находится изображение.

dimarik 04.10.2011 23:53

stage.stageHeight - размер сцены, определяемый FP. Это константа (для упрощения).
stage.height - размер stage как любого другого DisplayObject, определяемый bounding box, входящих в его состав детей.

Предположим, что размер пустого FP на странице равен 100x100 px. Тогда stage.stageHeight будет равен 100 px, а stage.height равен 0, т.к. ролик пустой и у него нет детей в списке отображения.

После добавления на stage квадратика высотой 50px в координату y = 10, stage.height будет равен 60, к.м.к.

Рамки мы договорились не пользовать. Делаем по науке.

goodguy 05.10.2011 10:48

Цитата:

рамка-это граница спрайта (или контейнера который будет использоваться) в котором будет находится изображение.
Нет у контейнеров никаких границ. Нужно считать размеры изображения, забив на контейнер. После помещения изображения в контейнер, его размеры будут соответствовать размеру изображения, а не наоборот.

ChuwY 05.10.2011 12:40

Еще раз тыкну пальцем в свой первый пост в этой теме.
UILoader.
Указываем ему размеры, например 100 на 100.
Закидываем картинку или ссылку в геттер source.
Любуемся на то, как он нам отмасштабировал картинку.

у носков это, очевидно, AutoFitArea

savva 05.10.2011 14:29

Цитата:

Сообщение от ChuwY (Сообщение 1036926)
Еще раз тыкну пальцем в свой первый пост в этой теме.
UILoader.
Указываем ему размеры, например 100 на 100.
Закидываем картинку или ссылку в геттер source.
Любуемся на то, как он нам отмасштабировал картинку.

у носков это, очевидно, AutoFitArea

Я пишу на чистом AS3 использую FD+Flex 4.5, поэтому возможности подключить fl. и mx. пакеты нет возможности.

Autofitarea сейчас смотрю.

goodguy 05.10.2011 15:58

Цитата:

Я пишу на чистом AS3 использую FD+Flex 4.5, поэтому возможности подключить fl. и mx. пакеты нет возможности.
O_o. Как это нет?
mx туда сразу входит, а какое отношение fl имеет к теме?
Тут вообще речь про greensock

savva 05.10.2011 19:47

"fl.containers.UILoader" у меня не такого,есть только пакеты flash.*


У меня раньше были с этим проблемы,не мог подключить пакеты mx.*
вот тема моя: http://www.flasher.ru/forum/showthread.php?t=161742

я понял,что про Greensock, изучаю.


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

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