PDA

Просмотр полной версии : Как делается резиновый флеш?


artbizster
22.11.2006, 13:25
Привет=)
Есть вопрос! Ка делается резиновый флеш?
Например такой:
http://www.nokia.ru/lifestyle/roadshow/

Спасибо, если кто ответит на вопрос:umnik2:

etc
22.11.2006, 13:43
А поиск уже не рулит?

screamge
22.11.2006, 14:04
создаёшь на таймлаине мувиклик "pic" и новом лейере пишешь:

Stage.scaleMode = "noScale";
Stage.align = "TL";


_global.izraz = function (znach1, znach2){
var mc:MovieClip = _root.pic;
mc._width = znach1
mc._height = znach2
}


var resize_obj = {};
resize_obj.normal_width = 1024;
resize_obj.normal_height = 600;


resize_obj.onResize = function(){
var param1 = Stage.width
var param2 = Stage.height
izraz (param1, param2);
trace (param1)
trace (param2)
}

Stage.addListener(resize_obj);

pyatifan
27.01.2008, 16:19
Бьюсь и не могу добиться нужного растяжения. Делаю как из урока, получается только пропорциональное растяжение, а надо чтобы зеленый квадрат вместе с текстом растягивался до правого рисунка. Надеюсь на помощь, спасибо!

olexandr
27.01.2008, 16:54
держи :)

pyatifan
27.01.2008, 22:32
Спасибо огромное! пришло частичное понимание:)
Теперь проблема с отображением в браузере. Флешка располагается на html странице. Отображение неверное.
А в плеере все нормально.
Надеюсь на помощь, спасибо!

pyatifan
28.01.2008, 21:06
Получилось! В браузере тоже растягивается как надо. Но если запускать мазилой или оперой, то флешка сначала имеет ширину, установленную при её создании. И только растянув окошко браузера, флешка растягивается по его ширине.
В чем может быть дело?

Haiat
28.01.2008, 21:45
Сам вот только сижу и думаю как это сделать:).Но решил не гемороиться и сделать это на самой страничке.В самом html через swfobject вставляй и прописывай 100% ширину и длину. Должно работать.но не проверял.
вопрос к знающим,будет ли работать?:)

olexandr
28.01.2008, 22:00
так проверь! :)
у меня прописано по 100% и ширина, и высота - никаких проблем нету

pyatifan
28.01.2008, 22:43
а "swfobject" это как?

для этого есть тег "object":
http://htmlbook.ru/html/object.html
и тег "embed":
http://htmlbook.ru/html/embed.html

У тега "object" и "embed" есть параметр width:
<object width="..." height="..."></object>
<embed width="..." height="..."></embed>

Спецификация HTML 4.0 рекомендует использовать тег <OBJECT> для загрузки внешних данных вместо тега <EMBED>. Однако некоторые браузеры не отображают таким образом нужную информацию, поэтому наилучшим вариантом будет поместить <EMBED> внутрь контейнера <OBJECT>.

Перебрал варианты. Не работает.
Что-то необходимо додумывать в самой флешке. Открыл чужую резиновую флешку с помощью браузера, там все в норме.

etc
28.01.2008, 22:44
http://noregret.org/tutor/swfobject/

Haiat
28.01.2008, 22:56
Нужно чтобы флэшка рамкой в ie не обрамлялась,и другтие плюсы есть свои.Всё разобрался я.так и есть как думал,просто не было времени проверить.ЩАс норм

pyatifan
28.01.2008, 23:10
Помнится еще сдесь впервые читал:
http://www.bombshock.ru/
:)

Haiat поделись примерчиком :)
Старше 8 версии dreamveaver сам убирает рамку на html странице. Там флешка js вставляется.

<Maugli>
01.02.2008, 01:39
http://noregret.org/tutor/elastic/

Используя приведенный пример, получается неточная "резиновость". В прикрепленном ниже примере все объекты расположены в углах экрана, а при изменении размера экрана "отъезжают" от границ экрана. А более точное расположение объектов после ресайза возможно добиться? Если да, то каким образом, ведь вроде все расчеты верны :rolleyes: ?

wvxvw
01.02.2008, 21:28
Ну так точка регистрации клипов не в левом верхем углу, а по центру... естесствено, будут отъезжать, вы же ширину\высоту клипов не изменяете пропорционально изменению размеров стейджа...

<Maugli>
01.02.2008, 22:14
Ну так точка регистрации клипов не в левом верхем углу, а по центру... естесствено, будут отъезжать, вы же ширину\высоту клипов не изменяете пропорционально изменению размеров стейджа...
А как изменить точку регистрации клипа, не создавая его заново?

pyatifan
01.02.2008, 23:35
дописал после строчки:
Stage.addListener(resize_obj);
это:
resize_obj.onResize();

все заработало как надо :)

А как изменить точку регистрации клипа, не создавая его заново?
http://www.kirupa.com/developer/mx/rpoint.htm

<Maugli>
02.02.2008, 00:28
http://www.kirupa.com/developer/mx/rpoint.htm

про это я знал, но все равно не получается... получается, что обязательно увеличивать размер самих объектов?

wvxvw
02.02.2008, 03:58
тю млин... дык ничего ж не поменялось =\
На кирупе не о том написано... это годится для редактирования во флеше...
Вобщем, ща сделаю =)
Stage.align = 'TL';
Stage.scaleMode = 'noScale';
var i:Number=10;
var _mc:MovieClip;
while(--i){
_mc = rct(this,100,100,Math.random()*0xffffff,100);
_mc._x = ((Stage.width - _mc._width)/2)*((i-1)%3);
_mc._y = ((Stage.height - _mc._height)/2)*Math.floor((i-1)/3);
_mc.xalign = function():Number {return 0};
_mc.yalign = function():Number {return 0};
if(_mc._x!=0 && _mc._x<Stage.width/2){
_mc.xalign = function():Number {
return (Stage.width-this._width)/2;
};
} else if(_mc._x!=0){
_mc.xalign = function():Number {
return Stage.width-this._width;
};
}
if(_mc._y!=0 && _mc._y<Stage.height/2){
_mc.yalign = function():Number {
return (Stage.height-this._height)/2;
};
} else if(_mc._y!=0){
_mc.yalign = function():Number {
return Stage.height-this._height;
};
}
_mc.onResize = function():Void {
this._x = this.xalign();
this._y = this.yalign();
}
Stage.addListener(_mc);
}
function rct(_mc:MovieClip, w:Number, h:Number, c:Number, a:Number):MovieClip {
var mc:MovieClip = _mc.createEmptyMovieClip('rct'+_mc.getNextHighestDepth(), _mc.getNextHighestDepth());
mc.beginFill(c,a);
mc.lineTo(w,0);
mc.lineTo(w,h);
mc.lineTo(0,h);
mc.lineTo(0,0);
mc.endFill();
return mc;
}

pyatifan
02.02.2008, 12:29
<Maugli>, flash 8 не открывает. В какой версии делано?

<Maugli>
02.02.2008, 15:41
<Maugli>, flash 8 не открывает. В какой версии делано?

В CS3....