sector_222
22.02.2009, 01:33
дорый день, пытаюсь сделать эффект зеркального отображения списка мувиклипов
import mx.transitions.Tween;
import mx.transitions.easing.*;
import flash.display.BitmapData;
import flash.geom.Matrix;
function callThumbsGoriz() {
// создаём пустой клип с нужными координатами для панели прокрутки с мелкими фотками
_root.createEmptyMovieClip("container_mcZ",_root.getNextHighestDepth());
container_mcZ._x = _root.goriz_x;
container_mcZ._y = _root.goriz_y;
//создаём прелоадер
var clipLoader = new MovieClipLoader();
var preloader = new Object();
clipLoader.addListener(preloader);
//пока не кончится все фотки загружаем их в контейнер
for (i=0; i<myImagesTotal; i++) {
thumbURL = myImages[i].attributes.thumb_url;
myThumb_mc = container_mcZ.createEmptyMovieClip(i, container_mcZ.getNextHighestDepth());
myThumb_mc._x = (_root.thumb_height*i); //координата следующей фотки = ширина фотки * i
clipLoader.loadClip("thumbs/"+thumbURL,myThumb_mc); // загружаем фотку
//прелоадер в виде текстового поля
preloader.onLoadStart = function(target) {
target.createTextField("my_txt",target.getNextHighestDepth,60,60,100,20);
target.my_txt.selectable = false;
};
preloader.onLoadProgress = function(target, loadedBytes, totalBytes) {
target.my_txt.text = Math.floor((loadedBytes/totalBytes)*100);
};
//при окончании загрузки прячим прелоадер
preloader.onLoadComplete = function(target) {
new Tween(target, "_alpha", Strong.easeOut, 0, 100, 7, true);
target.my_txt.removeTextField();
reflect(target);//здесь я вызываю функцию зеркального торажения
//принажатии на изображение вызываем загрузку большого фото
target.onRelease = function() {
callFullImage(this._name);
};
//при наведении на изображение - прозрачность на 50%
target.onRollOver = function() {
this._alpha = 50;
};
target.onRollOut = function() {
this._alpha = 100;
};
};
}
}
function reflect(target_mc:MovieClip):Void{
var myBitmapData:BitmapData = new BitmapData(target_mc._width, target_mc._height, false, 0x00CCCCCC);
var mc_1:MovieClip = this.createEmptyMovieClip("reflect_mc", 2);
mc_1.attachBitmap(myBitmapData, 3);
myBitmapData.draw(target_mc);
reflect_mc._yscale = -100;
reflect_mc._y= target_mc._y+target_mc._height*2+5;
reflect_mc._x = target_mc._x;
setupReflection(reflect_mc);
}
// функция создания зеркальной заливки
function setupReflection(target_mc:MovieClip):Void{
this.createEmptyMovieClip("mask_mc",50);
with (mask_mc)
{
colors = [0x000000, 0xFFFFFF];
fillType = "linear"
alphas = [100, 0];
ratios = [127, 255];
spreadMethod = "pad";
interpolationMethod = "RGB";
focalPointRatio = 1;
matrix = new Matrix();
matrix.createGradientBox(target_mc._x, target_mc._y, Math.PI/2, 0, -175);
beginGradientFill(fillType, colors, alphas, ratios, matrix,
spreadMethod, interpolationMethod, focalPointRatio);
moveTo(target_mc._x, target_mc._y);
lineTo(target_mc._x, target_mc._y-target_mc._height);
lineTo(target_mc._x+target_mc._width, target_mc._y-target_mc._height);
lineTo(target_mc._x+target_mc._width, target_mc._y);
lineTo(target_mc._x, target_mc._y);
endFill();
}
//копируем изображение
target_mc.cacheAsBitmap = true;
//дубликат наебарот
mask_mc.cacheAsBitmap = true;
//эффект зеркала
target_mc.setMask(mask_mc);
/*mask_mc._alpha =50;*/
}
где моя ошибка? подскажите пожалуйста :rolleyes:
import mx.transitions.Tween;
import mx.transitions.easing.*;
import flash.display.BitmapData;
import flash.geom.Matrix;
function callThumbsGoriz() {
// создаём пустой клип с нужными координатами для панели прокрутки с мелкими фотками
_root.createEmptyMovieClip("container_mcZ",_root.getNextHighestDepth());
container_mcZ._x = _root.goriz_x;
container_mcZ._y = _root.goriz_y;
//создаём прелоадер
var clipLoader = new MovieClipLoader();
var preloader = new Object();
clipLoader.addListener(preloader);
//пока не кончится все фотки загружаем их в контейнер
for (i=0; i<myImagesTotal; i++) {
thumbURL = myImages[i].attributes.thumb_url;
myThumb_mc = container_mcZ.createEmptyMovieClip(i, container_mcZ.getNextHighestDepth());
myThumb_mc._x = (_root.thumb_height*i); //координата следующей фотки = ширина фотки * i
clipLoader.loadClip("thumbs/"+thumbURL,myThumb_mc); // загружаем фотку
//прелоадер в виде текстового поля
preloader.onLoadStart = function(target) {
target.createTextField("my_txt",target.getNextHighestDepth,60,60,100,20);
target.my_txt.selectable = false;
};
preloader.onLoadProgress = function(target, loadedBytes, totalBytes) {
target.my_txt.text = Math.floor((loadedBytes/totalBytes)*100);
};
//при окончании загрузки прячим прелоадер
preloader.onLoadComplete = function(target) {
new Tween(target, "_alpha", Strong.easeOut, 0, 100, 7, true);
target.my_txt.removeTextField();
reflect(target);//здесь я вызываю функцию зеркального торажения
//принажатии на изображение вызываем загрузку большого фото
target.onRelease = function() {
callFullImage(this._name);
};
//при наведении на изображение - прозрачность на 50%
target.onRollOver = function() {
this._alpha = 50;
};
target.onRollOut = function() {
this._alpha = 100;
};
};
}
}
function reflect(target_mc:MovieClip):Void{
var myBitmapData:BitmapData = new BitmapData(target_mc._width, target_mc._height, false, 0x00CCCCCC);
var mc_1:MovieClip = this.createEmptyMovieClip("reflect_mc", 2);
mc_1.attachBitmap(myBitmapData, 3);
myBitmapData.draw(target_mc);
reflect_mc._yscale = -100;
reflect_mc._y= target_mc._y+target_mc._height*2+5;
reflect_mc._x = target_mc._x;
setupReflection(reflect_mc);
}
// функция создания зеркальной заливки
function setupReflection(target_mc:MovieClip):Void{
this.createEmptyMovieClip("mask_mc",50);
with (mask_mc)
{
colors = [0x000000, 0xFFFFFF];
fillType = "linear"
alphas = [100, 0];
ratios = [127, 255];
spreadMethod = "pad";
interpolationMethod = "RGB";
focalPointRatio = 1;
matrix = new Matrix();
matrix.createGradientBox(target_mc._x, target_mc._y, Math.PI/2, 0, -175);
beginGradientFill(fillType, colors, alphas, ratios, matrix,
spreadMethod, interpolationMethod, focalPointRatio);
moveTo(target_mc._x, target_mc._y);
lineTo(target_mc._x, target_mc._y-target_mc._height);
lineTo(target_mc._x+target_mc._width, target_mc._y-target_mc._height);
lineTo(target_mc._x+target_mc._width, target_mc._y);
lineTo(target_mc._x, target_mc._y);
endFill();
}
//копируем изображение
target_mc.cacheAsBitmap = true;
//дубликат наебарот
mask_mc.cacheAsBitmap = true;
//эффект зеркала
target_mc.setMask(mask_mc);
/*mask_mc._alpha =50;*/
}
где моя ошибка? подскажите пожалуйста :rolleyes: