Просмотр полной версии : Ограничение размеров подгружаемой флешки
Firefoxer
23.05.2008, 17:19
Подгружаемая флешка, оперируя значениями Stage.width и Stage.height, расширяется на все окно проигрывателя, заполняя все, реагируя даже на ресайз. С самой подгружаемой флешкой делать ничего не могу. Возможно ли как-то ее "обмануть" и ограничить занимающую ей зону без масок?
Alex_beginner
23.05.2008, 17:22
А почему бы не подгружать в созданный отдельно мувик!
Firefoxer
23.05.2008, 17:30
А что дальше? Я видимо не дорасказал. Она, эта подгружаемая свфка, аттачит картинки из библиотеки и растягивает их на все полотно. И даже если подгружать ее в мувик, маскировать его, то результат меня не удовлетворит, мне нужно видеть именно все ее содержимое, только уменьшенное.
lexa2000lexa
23.05.2008, 17:32
ну тогда используйте
_xscale и _yscale
и получите что хотите.
Alex_beginner
23.05.2008, 17:37
Можно даже объект Matrix использовать
lexa2000lexa
23.05.2008, 17:41
а стоит ли этот геморой таких свечей?
Firefoxer
23.05.2008, 17:42
Xscale Пробовал, может не так пробовал. Посмотрите, кому не лень. Кода по-минимуму.
Alex_beginner
23.05.2008, 17:46
Возможно вопрос в синтаксисе:
мувиклип._xscale;
мувиклип._yscale;
Firefoxer
23.05.2008, 17:46
Геморойчик конечно нежелательный, пробую и вариант с двумя отдельными флешками. Но тут дело принципа, было бы крайне разобраться в такой казалось бы мелочи.
Firefoxer
23.05.2008, 17:50
у меня там:_level2._xscaleкуда подгружается флеха. но это не спасает, ведь потом она аттачит уже на другие уровни.
lexa2000lexa
23.05.2008, 18:17
вот попробуйте, так вам подойдет.
Firefoxer
23.05.2008, 18:22
Может и не подойдет. Другими словами все остальное нужно увеличивать в два раза, такой выход предлагаете?
lexa2000lexa
23.05.2008, 18:28
почему ? увеличивать.
Alex_beginner
23.05.2008, 19:16
А вот так!
Ну там модифицируй код как тебе надо.
var loadedClip:MovieClip = this.createEmptyMovieClip("loadedClip",13);
loadedClip.loadMovie("scen.swf");
_level0._xscale=40;
_level0._yscale=40;
Firefoxer
23.05.2008, 21:44
Есть еще идеи кроме вариаций со scale?
function onLoadInit(mc){
trace(mc);
for(var i in Stage["_listeners"]){
delete i;
}
//необязательно скале, что угодно, погруженная уже не реагирует на размер сцены
_level2._xscale=20;
_level2._yscale=20;
}
var loader:MovieClipLoader=new MovieClipLoader();
loader.addListener(this);
loader.loadClip("scen.swf",2);
Molecula
24.05.2008, 05:29
silin, не получилось с твоим кодом.
Вот что у меня в r.swf:
var l:Object = new Object();
var l1:Object = new Object();
var l2:Object = new Object();
var l3:Object = new Object();
l.onResize = e;
l2.onResize = g;
function e(){
mc._width = Stage.width;
}
function g(){
mc._height = Stage.height;
}
function d(){
trace('removed')
Stage.removeListener(l);
}
Stage.addListener(l);
Stage.addListener(l1);
Stage.addListener(l2);
Stage.addListener(l3);
+ на сцене руками положенный черный квадрат, с Инстанс Нэйм mc.
При компиле вся сцена ЧЁРНАЯ :)
Как сделал что бы работало:
Подгрузочный файл l.swf (на сцене ничего нет):
var c = 0;
function onLoadInit(m) {
for (var i in m) { // ищём на обжекты сколько их там
if (typeof (m[i]) == "object") {
c++;
trace(c);
}
}
for (var i:Number = 0; i<c; i++) {
for (var o in Stage['_listeners']) {
delete Stage['_listeners'][i]; //нафиг со сцены обжекты
}
}
}
var mcl:MovieClipLoader = new MovieClipLoader();
mcl.addListener(this);
mcl.loadClip('r.swf',1);
Firefoxer
24.05.2008, 11:00
Посмотрите новую версию. Интересовался альтернативными методами, т.к. столкнулся со следующей проблемой. Теперь подгружаю две свфки, одна, уже знакомая вам scen.swf, находится снизу, а поверх нее гружу новую - pan01x.swf. Нужно вывести на передний план scen, точнее панорамку создаваемую этим мувиков, да так, чтобы она не растягивалась на весь экран.
Роман Вадимович
24.05.2008, 11:47
Можно применить ещё один способ.
Сделать флешку к примеру размером 800 на 600 и спроектировать её таким образом, будто размеры её всегда стабильны.
Потом, вставит на веб страничку в параметрах указать width=100%, height=100%.
При этом содержимое будет растягиваться автоматически, пытаясь занять оптимальное пространство.
Посмотрите - может это Вам и подойдет.
Molecula
24.05.2008, 12:26
Если подгружать scen.swf, то мой метод убьёт там растяжку, осталось достучаться по него через загрузчика.
Вообще гемор какой-то, лечге трепанацию СВФ сделать и скомплить обратно.
Alex_beginner
24.05.2008, 13:15
Друг мой! Испробуй сие блюдо!
var loadListener:Object = new Object();
loadListener.onLoadComplete = function(target_mc:MovieClip, httpStatus:Number):Void {
target_mc._xscale = 10;
target_mc._yscale = 10;
}
var mcLoader:MovieClipLoader = new MovieClipLoader();
mcLoader.addListener(loadListener);
var mc:MovieClip = this.createEmptyMovieClip("mc", 2);
mc._lockroot = true;
mcLoader.loadClip("scen.swf", mc);
100% рабочий вариант. Только в глубину getNextHighestDepth() неставь плиз!:)
Кстати! Посмотрел pan04 вариант глючный. В свое время iNils поднимал сей вопрос. Новидимо никто неотреагировал. А именно, метод (или функция) loadMovie() загружает фильм независимо от основного потока кода, т.е. не ждет когда файл загрузится, а передает управление следующим за ней кодам. Поэтому извращаться над подгруженным swf'ом сразу после loadMovie - операция некорректная. Чтобы обойти сию замарочку, нужно использовать класс MovieClipLoader и событие его onLoadComplete или onLoadInit.
Спасибо за внимание! У меня все.
Firefoxer
24.05.2008, 19:44
трепанцию проводил, замучился обратно компилить. так и не завелась. Но все дело в том, что этих панорам будет куча. и даже такой вариант не устроил бы.
Alex_beginner
24.05.2008, 19:56
Что нетак?
У меня все великолепно пашет
Firefoxer
24.05.2008, 20:09
О! Наконец-то сделал. Спасибо Всем, кому успел попарить мозги этой фигней.
Alex_beginner
24.05.2008, 20:12
Как сделал то? Поделись новинкой
Firefoxer
24.05.2008, 20:23
Alex_beginner, сделал все по образу и подобию Вашего последнего примера, плюс разобрался наконец, кто где должен находится. и маска на панорамку наделась. все это и нужно было мне.
Alex_beginner
24.05.2008, 20:25
Ну ладно. А то уж я подумал, что есть еще вариант какой
Firefoxer
24.05.2008, 20:29
Может AS3 мог бы что-то интереснее предложить. Но это только догадки, ибо не знаю.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.