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

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

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

Регистрация: Apr 2010
Адрес: Санкт-Петербург
Сообщений: 44
Question Некорректное чтение _width при загрузке SWF через MovieClipLoader

Ребята, помогите, пожалуйста.
Загружаю SWF, а при выводе его _width выводится величина, намного превышающая ширину подгружаемого файла:

Код AS1/AS2:
this.createEmptyMovieClip("w",this.getNextHighestDepth());
_root.w._lockroot = true;
 
var my_mcl:MovieClipLoader = new MovieClipLoader();
var myListener:Object = new Object();
 
myListener.onLoadInit = function(target_mc:MovieClip) {
	trace(w._width);
};
 
my_mcl.addListener(myListener);
 
my_mcl.loadClip("any.swf",_root.w);
Когда загружаю jpeg вместо swf, то ширина правильная выводится.
Если загружаю swf, в которой на первом кадре ничего нет, то trace(w._width) выводит '0'.

Подскажите, что я делаю не так?
Как мне прочитать ширину и высоту подгружаемого swf ?

Старый 26.04.2010, 18:50
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 2  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,600
Записей в блоге: 17
Дело в том, что он сообщает ширину содержимого, а не ролика.

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

Регистрация: Apr 2010
Адрес: Санкт-Петербург
Сообщений: 44
Цитата:
Сообщение от Psycho Tiger Посмотреть сообщение
Дело в том, что он сообщает ширину содержимого, а не ролика.
А как тогда мне узнать ширину именно ролика?

Старый 27.04.2010, 00:16
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 4  
Ответить с цитированием
in4core
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Я так понимаю что ролик который будет подгружаться - вы за ранее не знаете? Или же это ваш личный ролик, ширину и высоту которого вы знаете, но все же для каких то целей хотите проверить? ))) В любом случае без разницы. Раз локрут включен, пробуем тащить так
Код AS1/AS2:
trace(w._level0._width);
Пишу приблизительно, если не прокатит, то никак. А если ролик именно ваш.То на первом кадре ролика ( пустой он или нет)
Код AS1/AS2:
trace(_root._width);  trace(Stage.width)

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

Регистрация: Apr 2010
Адрес: Санкт-Петербург
Сообщений: 44
Спасибо за ответ, но trace(w._level0._width) выдаёт ещё более непредсказуемый результат ))

А в подгружаемые ролики вносить изменения проблематично: я делаю просмотрщик баннеров из портфолио для чужого сайта. В некоторых есть программная анимация, код может ссылаться на _root, а _lockroot иметь значение по умолчанию.

Вот такая проблема.
Нужели её не решить средствами флеша?

Старый 27.04.2010, 17:47
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 6  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
in4core, _level0 ссылается на дисплей объект самого верхнего уровня, т.е. в данном случае на _root загружающей флешки.

needForAnswer, в AS1/2 никак не узнать, насколько я помню, если только не передавать размеры отдельно, например, в xml файле или же прописать дополнительные свойства stageWidth и stageHeight в загружаемых swf.

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

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Вы понимаете что внтуринние swf могут быть масштабируемые через Stage.scale поэтому АДЕКВАТНО поймать ширину и высоту невозможно.

Старый 27.04.2010, 17:50
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 8  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Получить вписанную в ролик ширину с высотой можно в AS3.

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

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Вообщем я придумал вариант. Не знаю прокатит ли. Выполняйте проверку не по LoadInit а по LoadComplete это первое. Фиг знает авось поможет. Далее. Способ 2 : выполнять проверку уже после лоад инит. Тоесть поставить интервал проверки. скажем 1 секунда. или 0.5 тогда пустых кадров уже не будет и все отлично

Старый 27.04.2010, 21:12
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 10  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Нету никаких вариантов, если размеры содержимого не будут совпадать с размерами сцены, то без дополнительных средств не узнать. Только в AS3.

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

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

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


 


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


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