Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 29.09.2010, 17:06
mikhailk вне форума Посмотреть профиль Отправить личное сообщение для mikhailk Найти все сообщения от mikhailk
  № 1  
Ответить с цитированием
mikhailk
 
Аватар для mikhailk

Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
По умолчанию Истинные размеры объекта, в котором сидит больший объект под маской

Пишу функцию, которая возвращает мувиклип, в котором скролится битмапа. Сама битмапа размером 300х500 генерируется внутри этой функции. Создаю мувиклип, помещаю эту битмапу в него, сверху помещаю квадрат 300х300 и назначаю его маской для битмапы. Полученный мувиклип возвращаю.

Визуально возвращается мувиклип 300х300, но реально его свойство height равно 500, т.е. размер мувиклипа равен размеру битмапы. Очень хотелось бы, чтобы height и width были равны размеру маски.

Это можно как-то реализовать по-простому? Кропить битмапу нежелательно. Вводить собственные свойства myHeight/myWidth - тоже.

Старый 29.09.2010, 17:12
koIIImarik вне форума Посмотреть профиль Отправить личное сообщение для koIIImarik Посетить домашнюю страницу koIIImarik Найти все сообщения от koIIImarik
  № 2  
Ответить с цитированием
koIIImarik
 
Аватар для koIIImarik

Регистрация: Jul 2007
Адрес: Россия, Москва
Сообщений: 522
Можно переопределить get height и get width, но на мой взгляд лучше добавить функцию, что-нибудь наподобие getRealHeight, которая бы возвращала нужную высоту.

Старый 29.09.2010, 17:19
mikhailk вне форума Посмотреть профиль Отправить личное сообщение для mikhailk Найти все сообщения от mikhailk
  № 3  
Ответить с цитированием
mikhailk
 
Аватар для mikhailk

Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
про getRealHeight - это понятно
а вот с переопределением get height и get width - это мысль хорошая
чего-то не подумал

Добавлено через 5 минут
нет, не то
реальный-то размер все равно 500

Хотелось, чтобы после того, как мы помещаем полученный мувиклип в спрайт-обертку, его размеры были 300х300


Последний раз редактировалось mikhailk; 29.09.2010 в 17:26.
Старый 29.09.2010, 17:34
koIIImarik вне форума Посмотреть профиль Отправить личное сообщение для koIIImarik Посетить домашнюю страницу koIIImarik Найти все сообщения от koIIImarik
  № 4  
Ответить с цитированием
koIIImarik
 
Аватар для koIIImarik

Регистрация: Jul 2007
Адрес: Россия, Москва
Сообщений: 522
Цитата:
нет, не то
А почему не то?

Код AS3:
override public function get height():Number
{
     return this.myMask.height;
}
Вы похожим образом пробовали сделать?


Последний раз редактировалось koIIImarik; 29.09.2010 в 17:45.
Старый 29.09.2010, 17:47
mikhailk вне форума Посмотреть профиль Отправить личное сообщение для mikhailk Найти все сообщения от mikhailk
  № 5  
Ответить с цитированием
mikhailk
 
Аватар для mikhailk

Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
ну да, именно так.
public еще впереди.

Код AS3:
var bitmapClipped:BitmapClipped = new BitmapClipped();   // здесь переопределили get height
var sprite:Sprite = new Sprite();
sprite.addChild(bitmapClipped);
trace(bitmapclipped.height,sprite.height); // выводит 300 500
а надо, чтобы высота sprite тоже была 300


Последний раз редактировалось mikhailk; 29.09.2010 в 17:49.
Старый 29.09.2010, 18:05
koIIImarik вне форума Посмотреть профиль Отправить личное сообщение для koIIImarik Посетить домашнюю страницу koIIImarik Найти все сообщения от koIIImarik
  № 6  
Ответить с цитированием
koIIImarik
 
Аватар для koIIImarik

Регистрация: Jul 2007
Адрес: Россия, Москва
Сообщений: 522
На сколько я понимаю, вы переопределили функцию в BitmapClipped, но пытаетесь получить высоту из другого класса (в данном случае Sprite), чтобы этот метод работал вам нужно переопределить функцию в том классе, к высоте которого вы обращаетесь.

Если есть такая возможность, то можно попытаться обойтись без Sprite и обращаться к высоте BitmapClipped напрямую или же создать новый класс, который будет заменять Sprite, внутри которого будет переопределяться та же функция get height.

Старый 29.09.2010, 18:15
mikhailk вне форума Посмотреть профиль Отправить личное сообщение для mikhailk Найти все сообщения от mikhailk
  № 7  
Ответить с цитированием
mikhailk
 
Аватар для mikhailk

Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
Да нет
Мне как раз нужно, чтобы "истинные" размеры были как раз 300 на 300.
Чтобы контейнеры, в которые этот мувиклип может быть помещен, искренне считали, что его размеры 300х300. И сами, соответственно, принимали свои размеры с учетом этого.

Аналог, чтобы было понятно - с точки html-страницы, на которой размещена флешка, ее размер 300х300, хотя в ней есть объекты, которые вылазят за эти границы. Вот мне нужно что-то подобное, но внутри самого флеша.

Старый 29.09.2010, 18:22
cleptoman вне форума Посмотреть профиль Отправить личное сообщение для cleptoman Найти все сообщения от cleptoman
  № 8  
Ответить с цитированием
cleptoman
 
Аватар для cleptoman

блогер
Регистрация: Mar 2007
Сообщений: 1,291
Записей в блоге: 5
Отправить сообщение для cleptoman с помощью ICQ
какая-то очень шаткая конструкция, на мой взгляд..а если myMask не определена?

по-моему правильней всего сделать примерно так:

Код AS3:
public function get visibleHeight():Number
{
     return (super.mask) ? super.mask : super.height;
}
хотя есть еще srollRect. придется и его учитывать )
__________________
http://cleptoman.free-lance.ru
achivements: дважды благословлен на воровство. осеяный благодатью

Старый 29.09.2010, 18:27
mikhailk вне форума Посмотреть профиль Отправить личное сообщение для mikhailk Найти все сообщения от mikhailk
  № 9  
Ответить с цитированием
mikhailk
 
Аватар для mikhailk

Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
вопрос не в том, как вернуть правильную высоту.

вопрос по сути следующий - может ли мувиклип иметь размеры меньшие, чем размеры контента внутри него?

я выше привел аналог - флеш внутри хтмл

Старый 29.09.2010, 18:27
-De- вне форума Посмотреть профиль Отправить личное сообщение для -De- Найти все сообщения от -De-
  № 10  
Ответить с цитированием
-De-
 
Аватар для -De-

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
Может такое %)
Код AS3:
public function get visibleHeight():Number
{
    mask = null;
    int retValue = height;
    mask = ourMask;
     return retValue ;
}
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают.

Создать новую тему Ответ Часовой пояс GMT +4, время: 03:28.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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