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

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

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

Регистрация: Mar 2006
Адрес: Kemerovo, Sibiria, Russia
Сообщений: 8
Cool Доступ к свойствам загруженной SWFки

Приветствую!
Решаю такую задачку:
Необходимо загрузить SWFку, содержащую векторное изображение, а затем по запросу отобразить это изображение, динамически меняя его высоту.
1. Использую MovieClipLoader для загрузки. Создаю пустой клип и в него гружу.
2. На этапе загрузки без проблем изменяю ширину через обращение к target_mc в .onLoadInit.
3. Потом ложу на нижний, невидимый слой и по необходимости перевожу на верхний видимый.
4. ... а вот тут и возникает проблема. Не удается изменит параметр _height т.к. я обращаюсь через "пустой" клип в который загружена SWFка, а у него выста 0. Т.е. видимо надо как-то добратся до свойств самой картинки... пробовал ссылатся на нее всеми способами, игрался с _lockroot, но все безрезультатно
Подскажите, как грамотнее решить эту задачку
__________________
< - just fly for fun - >


Последний раз редактировалось vgl; 01.03.2006 в 08:22.
Старый 01.03.2006, 09:41
breez38 вне форума Посмотреть профиль Отправить личное сообщение для breez38 Найти все сообщения от breez38
  № 2  
Ответить с цитированием
breez38
 
Аватар для breez38

Регистрация: Nov 2005
Адрес: Иркутск
Сообщений: 233
Отправить сообщение для breez38 с помощью ICQ
Изменять размеры мувиклипа через _width и _height нельзя. Можно только масштабировать мувик при помощи _xscale и _yscale. Они задаются в процентах, где 100% - оригинальный размер.

Например, если тебе нужно скажем увеличить высоту на 20 пикселей то можно написать так:

Код:
my_mc._yscale = (my_mc._width + 20) * 100 / my_mc._width;
Это приведет к "растягиванию" мувиклипа по высоте.
__________________
Никогда не может быть так плохо, чтоб не могло быть еще хуже!

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

Регистрация: Mar 2006
Адрес: Kemerovo, Sibiria, Russia
Сообщений: 8
Цитата:
Сообщение от breez38
Изменять размеры мувиклипа через _width и _height нельзя. Можно только масштабировать мувик при помощи _xscale и _yscale. Они задаются в процентах, где 100% - оригинальный размер.

Например, если тебе нужно скажем увеличить высоту на 20 пикселей то можно написать так:

Код:
my_mc._yscale = (my_mc._width + 20) * 100 / my_mc._width;
Это приведет к "растягиванию" мувиклипа по высоте.
Спасибо! Я стока бился с _height, а оказывается она впринципе видимо успехе не принесла бы.
__________________
< - just fly for fun - >

Старый 01.03.2006, 10:39
meiciuc вне форума Посмотреть профиль Отправить личное сообщение для meiciuc Найти все сообщения от meiciuc
  № 4  
Ответить с цитированием
meiciuc

Регистрация: Nov 2005
Сообщений: 149
_height & _width тоже прекрасно можно ипользовать дял измениения размеров клипа. Просто надо было обращаться к новому загруженному клипу по имени старого клипа. т.е. какже как и в случае
Код:
my_mc._yscale
только было бы
Код:
my_mc._height = ...

Старый 01.03.2006, 10:48
breez38 вне форума Посмотреть профиль Отправить личное сообщение для breez38 Найти все сообщения от breez38
  № 5  
Ответить с цитированием
breez38
 
Аватар для breez38

Регистрация: Nov 2005
Адрес: Иркутск
Сообщений: 233
Отправить сообщение для breez38 с помощью ICQ
to meiciuc
мда... действительно то же можно и через _height и _width... только почему у меня это раньше не работало - понять не могу
__________________
Никогда не может быть так плохо, чтоб не могло быть еще хуже!

Старый 01.03.2006, 11:01
meiciuc вне форума Посмотреть профиль Отправить личное сообщение для meiciuc Найти все сообщения от meiciuc
  № 6  
Ответить с цитированием
meiciuc

Регистрация: Nov 2005
Сообщений: 149
не работало только потому, что была неверная адресация. Уверен, помог пример breez38.

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

Регистрация: Mar 2006
Адрес: Kemerovo, Sibiria, Russia
Сообщений: 8
Цитата:
Сообщение от meiciuc
не работало только потому, что была неверная адресация. Уверен, помог пример breez38.
А у меня не работает. Размер загруженной внутрь "пустого" клипа my_mc SWFки меняется тока через масштабирование.

my_mc._height = 400;
trace(my_mc._height);

Выдаст 0;

а когда делал my_mc._yscale = 400 то все замечательно растянулось в 4 раза.
__________________
< - just fly for fun - >

Старый 01.03.2006, 12:49
meiciuc вне форума Посмотреть профиль Отправить личное сообщение для meiciuc Найти все сообщения от meiciuc
  № 8  
Ответить с цитированием
meiciuc

Регистрация: Nov 2005
Сообщений: 149
Код:
my_mc._height = 400;
trace(my_mc._height);

Выдаст 0;
все правильно, просто в тот момент целевой клип еще пустой, о если он пустой, то и размеры у него соответсвующие - хоть 1000000 пикселей ему задай. Размеры через _height & _width можно задавать лишь после проверки на наличие загруженного клипа.

Старый 01.03.2006, 13:02
meiciuc вне форума Посмотреть профиль Отправить личное сообщение для meiciuc Найти все сообщения от meiciuc
  № 9  
Ответить с цитированием
meiciuc

Регистрация: Nov 2005
Сообщений: 149
кстати, использование события onLoadComplete - к сожалению, не панацея. Попробуй проанализировать trace из хелпового примера по этому событию. Если ты грузишь клип с локальной машины, то получишь
Код:
>> loadListener.onLoadComplete()
>> =============================
>> target_mc._width: 0
>> httpStatus: 0
>> loadListener.onLoadInit()
>> =============================
>> target_mc._width: 115
loadListener.onLoadComplete() был вызван раньше, чем loadListener.onLoadInit() - это первое, но этое ерунда. Хуже другое

Код:
>> loadListener.onLoadComplete()
>> =============================
>> target_mc._width: 0
, что говорит о том, что на момент загрузки флеш еще не может определить параметры клипа. Я делал дополнительную задержку, и снова пытался тестить размеры клипа. Получив результат, отличный от нуля, уже пользовал клип, как было нужно.

Старый 01.03.2006, 13:04
KidsKilla вне форума Посмотреть профиль Отправить личное сообщение для KidsKilla Посетить домашнюю страницу KidsKilla Найти все сообщения от KidsKilla
  № 10  
Ответить с цитированием
KidsKilla
.grin! wuz here
 
Аватар для KidsKilla

Регистрация: Aug 2004
Адрес: paradise city
Сообщений: 3,981
Отправить сообщение для KidsKilla с помощью ICQ
Чилавеки. onLoadInit происходит как правило до onLoadComplete. а высоту менять у того что ещё не загрузилось бессмысленно...
__________________
Breakcore them all!

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

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

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


 


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


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