Rosco
17.02.2010, 01:36
Привет!
Есть 5 картинок, которые загружаются из xml...надо сделать так, чтобы они разворачивались на весь экран и растягивались при масштабировании окна браузера...отображались примерно 5 секунд и плавно затухали. На смену одной картинке должна приходить другая...
Вопросы вызывают следующие моменты:
1. Как сделать плавное затухание и появление объектов, а также их смену. И ещё одно - надо сделать так, чтобы слайдшоу начиналось сразу после загрузки первой картинки, т.е. если 2 картинка не загрузилась - она просто не проигрывается и первая картинка остаётся пока вторая не загрузилась...и т.д.
2. Как реализовать для этого массива картинок опцию allowSmoothing...т.е. чтобы они после загрузки в флеш становились сглаженными?
В принципе кое что получилось сделать, но только для одной картинки...подскажите как проделать тоже самое с массивом!
Вот код на этот момент(архив проекта прикреплён):
import flash.display.*;
import mx.transitions.Tween;
Stage.scaleMode = "noScale";
Stage.align = "TL";
function loadBitmapSmoothed(url:String, target:MovieClip)
{
var bmc:MovieClip = target.createEmptyMovieClip("bmc", target.getNextHighestDepth());
var listener:Object = new Object();
listener.tmc = target;
listener.onLoadInit = function(mc:MovieClip)
{
mc._visible = false;
var bitmap:BitmapData = new BitmapData(mc._width, mc._height, true);
this.tmc.attachBitmap(bitmap, this.tmc.getNextHighestDepth(), "auto", true);
bitmap.draw(mc);
}
var loader:MovieClipLoader = new MovieClipLoader();
loader.addListener(listener);
loader.loadClip(url, bmc);
}
_root.createEmptyMovieClip("myBG", getNextHighestDepth());
loadBitmapSmoothed("Sunrise.jpg",myBG);
myBG._xscale = 250;
myBG._yscale = 250;
function resizeBg():Void
{
var a:Number;
if(Stage.width > 1000)
{
a = myBG._width/ myBG._height;
myBG._width = Stage.width;
myBG._height = myBG._width / a;
trace(myBG._width/myBG._height);
}
}
resizeBg();
onResize = function()
{
resizeBg();
}
Stage.addListener(this);
Вобщем тут ещё одна проблемка иногда возникает - если пытаюсь обратиться к свойствам _width или _height для myBG - вот эта строка
trace(myBG._width/myBG._height);
начинает выдавать Infinity! Интересно почему так?:quiet:
Есть 5 картинок, которые загружаются из xml...надо сделать так, чтобы они разворачивались на весь экран и растягивались при масштабировании окна браузера...отображались примерно 5 секунд и плавно затухали. На смену одной картинке должна приходить другая...
Вопросы вызывают следующие моменты:
1. Как сделать плавное затухание и появление объектов, а также их смену. И ещё одно - надо сделать так, чтобы слайдшоу начиналось сразу после загрузки первой картинки, т.е. если 2 картинка не загрузилась - она просто не проигрывается и первая картинка остаётся пока вторая не загрузилась...и т.д.
2. Как реализовать для этого массива картинок опцию allowSmoothing...т.е. чтобы они после загрузки в флеш становились сглаженными?
В принципе кое что получилось сделать, но только для одной картинки...подскажите как проделать тоже самое с массивом!
Вот код на этот момент(архив проекта прикреплён):
import flash.display.*;
import mx.transitions.Tween;
Stage.scaleMode = "noScale";
Stage.align = "TL";
function loadBitmapSmoothed(url:String, target:MovieClip)
{
var bmc:MovieClip = target.createEmptyMovieClip("bmc", target.getNextHighestDepth());
var listener:Object = new Object();
listener.tmc = target;
listener.onLoadInit = function(mc:MovieClip)
{
mc._visible = false;
var bitmap:BitmapData = new BitmapData(mc._width, mc._height, true);
this.tmc.attachBitmap(bitmap, this.tmc.getNextHighestDepth(), "auto", true);
bitmap.draw(mc);
}
var loader:MovieClipLoader = new MovieClipLoader();
loader.addListener(listener);
loader.loadClip(url, bmc);
}
_root.createEmptyMovieClip("myBG", getNextHighestDepth());
loadBitmapSmoothed("Sunrise.jpg",myBG);
myBG._xscale = 250;
myBG._yscale = 250;
function resizeBg():Void
{
var a:Number;
if(Stage.width > 1000)
{
a = myBG._width/ myBG._height;
myBG._width = Stage.width;
myBG._height = myBG._width / a;
trace(myBG._width/myBG._height);
}
}
resizeBg();
onResize = function()
{
resizeBg();
}
Stage.addListener(this);
Вобщем тут ещё одна проблемка иногда возникает - если пытаюсь обратиться к свойствам _width или _height для myBG - вот эта строка
trace(myBG._width/myBG._height);
начинает выдавать Infinity! Интересно почему так?:quiet: