В галерее изображений я использую, я посылаю flashvar, чтобы установить "текущую" показанную картину.
Та галерея изображений подобна coverflow эффекту в iTunes и вещах другой Apple.
В моем коде сценария действия у меня есть этот вар вар current:Number = 1;
Когда я изменяю это, чтобы установить мой flashvar как стоимость как это: вар current:Number = currentPicture;
вещь, которая является странной, состоит в том, что он работает так, я получаю требуемую картину как ток, но когда я завиваюсь, чтобы показать следующую картину, (которые не прослушивают, когда я прокручиваю вниз к предыдущему), вся следующая картина исчезает..
Я приклеиваю вас код здесь (урезанный, как спросили в комментарии, здесь у вас есть init() и затем() и предыдущий() функция.. Я предполагаю, что проблема находится где-нибудь в init() функция, но я не уверен):
/*/
iTunes Album Art Viewer
/*/
import flash.display.*;
import flash.geom.*;
import flash.filters.*;
//Change these values below to customize the viewer functionality
var root:MovieClip = this;
var myMO:Object;
var myKO:Object;
var maxSlide:Number = 100;
var current:Number = currentPicture;
var scrollBarStart:Number = 0;
var scrollerDelay:Number = 150;
var scrollBarStop:Number = scrollBar.scroller._width + 49;
function init(Void):Void {
myMO = {};
myKO = {};
Mouse.addListener(myMO);
Key.addListener(myKO);
for (var i in infostruc) {
loader.clear();
loader.gradient_mc.removeMovieClip();
loader.attachMovie("default","art",1);
loader._width = frontCDWidth;
loader._height = frontCDHeight;
this["_bmd" + i] = new BitmapData(loader._width, loader._height);
this["_ref" + i] = new BitmapData(loader._width, loader._height);
this["_bmd" + i].draw(loader);
var mc:MovieClip = loader.createEmptyMovieClip("gradient_mc", loader.getNextHighestDepth());
matrix = new Matrix();
matrix.createGradientBox(loader._width,loader._height,reflectionRotation/180 * Math.PI,0,0);
mc.beginGradientFill(reflectionFillType,reflectionColors,reflectionAlphas,reflectionRatios,matrix,reflectionSpreadMethod,reflectionInterpolationMethod,reflectionFocalPointRatio);
mc.moveTo(0,0);
mc.lineTo(0,loader._height);
mc.lineTo(loader._width,loader._height);
mc.lineTo(loader._width,0);
mc.lineTo(0,0);
mc.endFill();
loader.art._alpha = reflectionAlpha;
loader.beginFill(reflectionBackgroundColour);
loader.moveTo(0,0);
loader.lineTo(0,loader._height);
loader.lineTo(loader._width,loader._height);
loader.lineTo(loader._width,0);
loader.lineTo(0,0);
loader.endFill();
this["_ref" + i].draw(loader);
}
//Edit by Matth, Alhadef
//"The Elevator Door 2"
for (var i :Number; i <= infostruc.length;i++){
var cArt:MovieClip = this.createEmptyMovieClip("art" + this.getNextHighestDepth(), this.getNextHighestDepth());
var rArt:MovieClip = this.createEmptyMovieClip("reflection" + (this.getNextHighestDepth() - 1), this.getNextHighestDepth());
rArt.id = cArt.id = rArt.cid = cArt.cid = Number(i) + 1;
cArt.DistortImage(this["_bmd" + cArt.id]);
controlTheObject(cArt);
rArt.DistortImage(this["_ref" + cArt.id]);
controlTheObject(rArt);
var tmpFilter:BlurFilter = new BlurFilter(reflectionBlurX, reflectionBlurY, reflectionQuality);
rArt.filterArray = [];
rArt.filterArray.push(tmpFilter);
rArt.filters = rArt.filterArray;
}
myMO.onMouseWheel = function(delta:Number):Void {
if (delta > 0) {
next();
} else if (delta <= 0) {
previous();
}
};
myKO.onKeyDown = function():Void {
if (Selection.getFocus() != "_level0.goto") {
if (Key.isDown(Key.RIGHT)) {
next();
} else if (Key.isDown(Key.LEFT)) {
previous();
}
}
};
scrollBar.scroller.onPress = function():Void {
dist = this._parent._xmouse - this._x;
this.onMouseMove = function():Void {
tmp = 1 + Math.ceil(((this._parent._xmouse - dist) - scrollBarStart)/(scrollBar._width - scrollBarStop) * (infostruc.length - 1));
if (tmp > infostruc.length) {
tmp = infostruc.length;
}
if (tmp < 1) {
tmp = 1;
}
current = tmp;
updateInfo();
};
};
scrollBar.scroller.onRelease = scrollBar.scroller.onReleaseOutside = function ():Void {
stopDrag();
delete this.onMouseMove;
};
scrollBar.left.onPress = function():Void {
previous();
shifter = setInterval(previous, scrollerDelay);
};
scrollBar.right.onPress = function():Void {
next();
shifter = setInterval(next, scrollerDelay);
};
scrollBar.onMouseUp = function():Void {
clearInterval(shifter);
};
scrollBar.onMouseDown = function():Void {
if (this.hitTest(_xmouse, _ymouse, true) && !this.left.hitTest(_xmouse, _ymouse, true) && !this.right.hitTest(_xmouse, _ymouse, true)) {
if (this._xmouse < this.scroller._x) {
previous();
shifter = setInterval(previous, clickDelay);
}
if (this._xmouse > this.scroller._x + this.scroller._width) {
next();
shifter = setInterval(next, clickDelay);
}
}
};
goto.onChanged = function():Void {
if (!isNaN(Number(this.text) + 1)) {
this.text = Math.round(Number(this.text));
if (this.text > infostruc.length) {
this.text = infostruc.length;
}
if (this.text < 1) {
this.text = 1;
}
current = this.text;
} else {
this.text = current;
}
updateInfo();
};
distance = Number(i);
mask.removeMovieClip();
loader.removeMovieClip();
scrollBar.swapDepths(1101);
loadNext();
updateInfo();
}
function next():Void {
if (current < infostruc.length) {
current += 1;
}
if (current eq infostruc.length) {
//Set our autodirect switch to go back now.
autoDirect = 0;
}
updateInfo();
}
function previous():Void {
if (current > 1) {
current -= 1;
}
if (current == 1) {
//Set our autodirect switch to go forward now
autoDirect = 1;
}
updateInfo();
}
С этим кодом вы видите линию вар current:Number = currentPicture;
, который делает ошибку... Но, снова, ошибка появляется только, когда мы переключаемся на следующую картину, если движение к предыдущему, то два раза к следующему, это не прослушивает.
Я не знаком с КАК, и как вы видите, я не кодер этой вещи, я прилагаю все усилия, чтобы понять, я уже успешно изменил некоторую стоимость, чтобы увеличить картину и т.д., но для этой ошибки, я не понимаю...