Просмотр полной версии : Как во Flash 8 сделать фон с размножаюшейся картинкой??
Как во Flash 8 сделать так чтобы картинка(из библиотеки) заполнила всесь фон (размножилась, а не растинулась) и именно на первом слое? и чтобы этот фон заполнял и всю html страничку, и при изменении размера html странички фон все равно все заполнял???
нашел в инете вот такое -
import flash.display.*;
import flash.geom.*;
//
Stage.scaleMode = "noScale";
Stage.align = "TL";
onResize = function () {
var myBitmapData:BitmapData = BitmapData.loadBitmap("libBitmap");
this.createEmptyMovieClip("bmp_fill_mc", 1);
with (bmp_fill_mc) {
matrix = new Matrix();
repeat = true;
smoothing = false;
beginBitmapFill(myBitmapData, matrix, repeat, smoothing);
moveTo(0, 0);
lineTo(0, Stage.height);
lineTo(Stage.width, Stage.height);
lineTo(Stage.width, 0);
lineTo(0, 0);
endFill();
}
};
Stage.addListener(this);
onResize();
А он размножает её прям поверх всех слоев! А че делать низнаю я новичек!
this.createEmptyMovieClip("bmp_fill_mc", 1);
1 - это уровень глубины ролика, который ты создаешь.
Все, что нарисовано на сцене, имеет отрицательную глубину, а все что создается программно, положительную.
глубина на AS называется depth.
Тупое решение: рисуешь квадратик на самом нижнем слое.
Конвертируешь его в мувиклип insert-> convert to symbol -> mc
В свойствах называешь его допустим "btm"
пишешь:this.createEmptyMovieClip("bmp_fill_mc", 1);
this["bmp_fill_mc"].swapDepths(this["btm"]);
И тобой созданый клип отправляется на самое дно. Только делать это надо только один раз, создавать клипов больше не надо, при перерисовке надо рисовать в уже имеющийся bmp_fill_mc.
Чтобы квадратик не мешался, убери его со сцены, или убей все его содержимое.
Нам от него нужна только его глубина
Уау! Работает! Огромное Сибо!:D
Ой нет не спасибо... фон то размножается только в области флеша, а на html область не распростроняется!!:( А?ЧЕ делать!!!???
Ой нет не спасибо... фон то размножается только в области флеша, а на html область не распростроняется!!:( А?ЧЕ делать!!!???
Это уже средствами html проще добиться.
делать флэш прозрачным а фон задавать в бэкграунди тела хтмл
Volen, для оформления своего кода, надо использовать теги .
А как его прозрачным сделать?? и Как это теги ? Подстажите! пожалуйста!!
Сделай резиновый флеш пропиши в html размеры по 100% и ненужна тут никакая прозрачность, тем более что не всеми браузерами поддерживается
Тобишь по средством кода флеша задачу мою не решить?:( (код в самом начале взят с флешблога.ру..). Но ведь все равно можно! На некоторых сайтах это реализованно и весьма успешно... и в опере и в експловере работает:(
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="100%" height="100%" id="var8" align="middle">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="8_4.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#333333" />
<param name="wmode" value="transparent">
<embed src="8_4.swf" quality="high" bgcolor="#333333" width="100%" height="100%" name="var7" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>
Вот. Обрати внимание на строчку wmode. Тут и указывается прозрачность. И обрати внимание на width и height равные 100%.
И пропиши ещё в первом кадре флэшки вот так fscommand("allowscale", false); и у тебя флэшка будет на всё окно браузера растягиваться и прозрачная будет.
Ура работает!!! Спасибо ВАРАН!!Спасибо всем!:)
Но вот опять не задача:( Окошко браузера прикотмаживает сильно когда размер менять начинаешь:( видать сам код во флеше мудренный, а можно как нибудь подругому написать код во флеше (другой или этот как изменить?) чтобы быстрее соображал swf??
Вот этот код... Подскажите пожалуйста как проще сделать?!
import flash.display.*;
import flash.geom.*;
//
Stage.scaleMode = "noScale";
Stage.align = "TL";
onResize = function () {
var myBitmapData:BitmapData = BitmapData.loadBitmap("libBitmap");
this.createEmptyMovieClip("bmp_fill_mc", 1);
this["bmp_fill_mc"].swapDepths(this["btm"]);
with (bmp_fill_mc) {
matrix = new Matrix();
repeat = true;
smoothing = false;
beginBitmapFill(myBitmapData, matrix, repeat, smoothing);
moveTo(0, 0);
lineTo(0, Stage.height);
lineTo(Stage.width, Stage.height);
lineTo(Stage.width, 0);
lineTo(0, 0);
endFill();
}
};
Stage.addListener(this);
onResize();
Ну чудак человек. Коли у тебя флэш прозрачный то нафиг вообще этот код. Задай фон в бэгграунде хтмл файла. Он там автоматом размножится. А во флэшке делай уж чё хочешь...
Ааа.. Спосибо! ВАРАН вы настоящий друг!:)
Експловер такое ест, но Опера к сожелению нет:( Поэтому лучше наверное в самом флеше код прописывать чтобы во всех браузерах работала. Осталось только код проше для флеша написать... только как?...:(
Вот сюда вот ещё зайди. И реши для себя, стоит ли это пара или нет.
http://www.artlebedev.ru/tools/browsers/
Артемию и тебе ВАРАН - респект:)!!!
По FAQ нашел - http://flasher.ru/forum/showthread.php?t=65988 там ответ челу что можно сделать вот так...
//'s' -linkage identifier мувика в библиотеке
var bg=this.createEmptyMovieClip('bg',-16384).attachMovie('s',0,0);
var w=bg._width,h=bg._height;
var nx=Math.ceil(Stage.width/w),ny=Math.ceil(Stage.height/h);
for(var i=nx*ny;--i;) bg.attachMovie('s',i,i,{_x:(i%nx)*w,_y:Math.floor(i/nx)*h})
А че с этим кодом делать? Как его включить?
(простите за не просвешённость во flashе)
А это уже, судя по всему, ЯваСкрипт, ставиться или в голову документа, или в тело, оформляется так:
<html><head><script>сюда пишешь скрипт</script></head>
<body>пошел документ</body></html>
Расстрелять! НА МЕСТЕ! За дезинформацию!
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.