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

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

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

Регистрация: Nov 2007
Сообщений: 8
По умолчанию SWFObject, габариты swf и динамически загружаемых клипов

Добрый день.
На неких ресурсах лежат различные "клипы" (swf, jpg, gif).

Я вставляю через SWFObject свой swf, который грузит соот-ий клип,
на основании передаваемых параметров.
Код:
var so = new SWFObject("/images/myloader.swf","mymovie","200","100","7","#336699");
	so.addVariable("MovieSource", "http://remote_site/clip/clip_1.gif");
В моем "флэше" получаемые переменные обрабатываются следующим образом:
Код:
stop();
if (MovieSource != undefined) {
	this.createEmptyMovieClip("image_mc", 0);
	this.image_mc.loadMovie(MovieSource);
}
1. Что делать, если клип с удалённого ресурса будет размером 800х600,
например? Как поменять размер отображаемого swf?

2. *.fla создан с размером документа (550Х400 pix). Если, допустим, грузится клип размером 50Х50 то он вставляется в документ 540х400,
а потом этот документ уже сжимается до 200х100 (размеры переданные через SWFObject) и загружаемый клип превращается вообще в мини эконку.

Таки образом, если клип больше, размера документа созданного во fla? то он сжимается до размера документа, а если меньше то становится еще меньше.

Как сделать чтобы флэш отображаемый в браузере имел габариты\размеры загружаемого клипа? Если, на этапе генерации страницы я не знаю размеров клипа (т.е. не могу SWFObject-у сразу задать габариты).

В publish fla не нашел как это сделать, к размеру документа тоже "достучаться" не смог (думал _root._height поможет).

Старый 18.03.2008, 19:33
mike_z вне форума Посмотреть профиль Отправить личное сообщение для mike_z Найти все сообщения от mike_z
  № 2  
Ответить с цитированием
mike_z

Регистрация: Nov 2007
Сообщений: 8
Возможно я неясно выразился.
Хочется чтобы в браузере отображался флэш, ширина и высота которого
равна ширине и высоте картинок, которые данный флэш подгружает с внешних сайтов.

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

Регистрация: Nov 2003
Адрес: Север
Сообщений: 244
Видимо, придется делать примерно так:

1. создавать SWFObject каких-то произвольных размеров, например 0, 0
2. грузить нужный файл в image_mc
3. после окончания загрузки проверять размеры image_mc
4. через ExternalInterface вызывать JavaScript функцию, которая установит нужные размеры для SWFObject

Вот... мда.
__________________
Scio me, nihil scire.

Старый 19.03.2008, 11:27
mike_z вне форума Посмотреть профиль Отправить личное сообщение для mike_z Найти все сообщения от mike_z
  № 4  
Ответить с цитированием
mike_z

Регистрация: Nov 2007
Сообщений: 8
Спасибо, не слышал пока об ExternalInterface.
А как после загрузки изображения во флэш поменять размер документа fla, (который изначально был 550х400), на размер загруженного изображения?

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

блогер
Регистрация: Nov 2007
Адрес: Киев
Сообщений: 557
Записей в блоге: 2
В первом кадре пропишите
Код:
Stage.scaleMode="noScale";
Stage.align="TL";
Это заставит флеш не растягивать и не сжимать содержимое флешки.
Потом - когда загрузили, вызываете жабоскриптовую ф-ю, которая ставит нужные размеры вашему swfObject'у на странице.

Старый 20.03.2008, 13:07
mike_z вне форума Посмотреть профиль Отправить личное сообщение для mike_z Найти все сообщения от mike_z
  № 6  
Ответить с цитированием
mike_z

Регистрация: Nov 2007
Сообщений: 8
Исполльзовал следующий preloader:
Код:
F_preloader = function (mc) {
	_root.createEmptyMovieClip("detect_mc", 100);
	_root.createTextField("tf_txt", 200, 200, 190, 150, 20);
	detect_mc.onEnterFrame = function() {
		trace("Entering onEnterFrame");
		var gbl = _root[mc].getBytesLoaded();
		var gbt = _root[mc].getBytesTotal();
			if (gbl == gbt && gbl>30) {
				tf_txt.text = "100%";
				trace(_root[mc]._height);
				removeMovieClip(this);
			} else {
				tf_txt.text = int(gbl/gbt*100)+"%";
			}
	};
};
_root.createEmptyMovieClip("mc_show", 1);
ant.ru:3001/images/al_166_110.jpg");
mc_show.loadMovie("hypercube3.3.swf"); 
F_preloader("mc_show");
Почему строка помеченная в коде красным выдает в лог "0".
Ведь клип то уже загрузился?
ЗЫ Вместо этой выдачи думал вставить вызов яваскрипта "дергающего" SWFObject.

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

блогер
Регистрация: Nov 2007
Адрес: Киев
Сообщений: 557
Записей в блоге: 2
Ужасный какой-то прелоадер. Мне лично в его багах лень разбираться. Используйте класс MovieClipLoader. Описание класса - в хелпах.

Старый 20.03.2008, 16:44
mike_z вне форума Посмотреть профиль Отправить личное сообщение для mike_z Найти все сообщения от mike_z
  № 8  
Ответить с цитированием
mike_z

Регистрация: Nov 2007
Сообщений: 8
Сделал как было задумано, НО тогда получается, что я буду загружать картинку 2 раза
1. SWFObject вставляет флэш
2. флэш загружает картинку
3. по переданным параметрам определяет вставляется ли он (флэш) первый раз
4. если первый, то вызывает через ExternalInterface SWFobject
и мы переходим к п.1, после чего картинка грузится 2-ой раз.

Может мы пошли неверным путем и есть еще какое-нибудь решение проблемы?

Может как нить можно загрузить картинку "в сам флэш" или кэш браузера,
а потом SWFObject загрузит флэш или картинку из кэша браузера?


Последний раз редактировалось iNils; 20.03.2008 в 19:05.
Создать новую тему Ответ Часовой пояс GMT +4, время: 23:01.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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