Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Flashden carusel v2 (http://www.flasher.ru/forum/showthread.php?t=144489)

zigaYO 13.09.2010 19:29

Flashden carusel v2
 
Всем привет. Проблема в том, что когда её открываешь через браузер (в основном в гугл хроме) картинки карусели не всегда встают на свои назначенные места, смещаются. И при обновлении браузера всегда по-разному, то они на местах, то опять где попало.

Вот скрин смещений : http://s58.***********/i159/1009/0d/7990267abf54.jpg
Должно быть так: http://s52.***********/i137/1009/6c/1922529141fb.jpg

вот пример: http://idamagazin.ru/viewer_no_options.swf

вот код карусели:
Код AS3:

//SCRIPTS
Stage.align = "left";
Stage.scaleMode = "noScale";
num = 1;
total = 0;
rot = 0.5001*Math.PI;
sliding = false;
rotGoto = rot;
rotTweening = rot;
rotImageNumber = 0;
overNumber = "";
autoRotate = false;
tooltip._alpha = 0;
//import libs
import mx.transitions.Tween;
import mx.transitions.easing.*;
import flash.display.BitmapData;
intThumb._visible = true;
tooltip.field2.autoSize =true;
diz = this;
// xml object / ignorewhite
xml = new XML();
xml.ignoreWhite = true;
//load object for parsing
xml.onLoad = function(sucess) {
        if (sucess) {
                storeAll(xml);
        }
};
// load XML
 
if(_root.xmlLocation != undefined){
        xml.load(_root.xmlLocation);
}else{
        xml.load("data.xml");
}
// parsing function
function storeAll(xmlDoc_xml) {
        //parse settings
        for (at in xmlDoc_xml.childNodes[0].attributes) {
                diz[at] = int(xmlDoc_xml.childNodes[0].attributes[at]*100)/100;
        }
        timer = autoRotateSpeed*24;
        if (useFocalBlur == "1") {
                useFocalBlur = true;
        } else {
                useFocalBlur = false;
        }
        if (useMotionBlur == "1") {
                useMotionBlur = true;
        } else {
                useMotionBlur = false;
        }
        if (useReflection == "1") {
                useReflection = true;
        } else {
                useReflection = false;
        }
        if (useFadeOnMouseOver == "1") {
                useFadeOnMouseOver = true;
        } else {
                useFadeOnMouseOver = false;
        }
        //navbar
        btns.btnLeft._x = centerX-spanX+30;
        btns.btnRight._x = centerX+spanX-30;
        btns.navbar_bg._width = spanX*2-150;
        btns.navbar_bg._x = centerX-btns.navbar_bg._width/2;
        btns.subtitle._width = spanX*2-150;
        btns.subtitle._x = centerX-btns.navbar_bg._width/2;
        btns.subtitle2._width = spanX*2-150;
        btns.subtitle2._x = centerX-btns.navbar_bg._width/2;
        //navbar_bg._y = centerY + spanY +100;
        //parse all imgs
        for (var n = 0; n<xmlDoc_xml.childNodes[1].childNodes.length; n++) {
                //this["photo"+n] = new Object();
                //add to folders list
                duplicateMovieClip(intThumb, "thumb"+n, this.getNextHighestDepth());
                thumbRef = this["thumb"+n];
                thumbRef._visible = true;
                thumbRef.num = n;
                thumbRef.urls = xmlDoc_xml.childNodes[1].childNodes[n].attributes.imageURL;
                thumbRef.linkData = xmlDoc_xml.childNodes[1].childNodes[n].attributes.linkData;
                thumbRef.linkType = xmlDoc_xml.childNodes[1].childNodes[n].attributes.linkType;
                thumbRef.linkTarget = xmlDoc_xml.childNodes[1].childNodes[n].attributes.linkTarget;
                thumbRef.captionText = xmlDoc_xml.childNodes[1].childNodes[n].attributes.captionText;
                thumbRef.captionText2 = xmlDoc_xml.childNodes[1].childNodes[n].attributes.captionText2;
                if(xmlDoc_xml.childNodes[1].childNodes[n].attributes.enableButtonWhenInFront == "1"){
                        thumbRef.enableButtonWhenInFront = true;
                }else{
                        thumbRef.enableButtonWhenInFront = false;
                }
                loadMovie(thumbRef.urls, thumbRef.loader);
                total += 1;
        }
        //end for folders
        perinstance = (2*Math.PI)/total;
        btns.swapDepths(30001);
        navbar_bg.swapDepths(30000);
        tooltip.swapDepths(30002);
        //videoplayer.swapDepths(3002);
}
//end function
this.onEnterFrame = function() {
        //timer for autorotate
        if(autoRotateSpeed != undefined && autoRotate){
                timer -= 1;
                if (timer<0) {
                        rotImageNumber -= 1;
                        if (rotImageNumber<0) {
                                rotImageNumber = total-1;
                        }
                        rotGoto += perinstance;
                        timer = 24*autoRotateSpeed; //24 frames per second
                }
        }
        //
        if (rotationKind == 0) {
                btns._visible = false;
                rot -= (Stage.width/2-_xmouse)/10000*turningspeed;
        } else {
                btns._visible = true;
                if (rotGoto != rotTweening) {
                        dist = Math.abs(rotGoto-rot);
                        if (dist>Math.PI) {
                                if (rotGoto>rot) {
                                        rot += 2*Math.PI;
                                } else {
                                        rot -= 2*Math.PI;
                                }
                        }
                        rotTweening = rotGoto;
                        var rottween:Tween = new Tween(this, "rot", Strong.easeInOut, rot, rotGoto, 4/turningspeed, true);
                }
        }
        //tooltip
        if(useTooltip){
                if(useSecondCaption){
                        tooltip.field.autoSize = false;
                        tooltip.field._width = 200;
 
                        tooltip.bg._width = tooltip.field2._width+5;
                        tooltip.field2._width = tooltip.field._width;
                        tooltip.bg._height = tooltip.field2._y+tooltip.field2._height+2;
                }else{
                        tooltip.field2.text = "";
                        tooltip.field.autoSize = true;
 
                        tooltip.bg._width = tooltip.field._width+5;
                        tooltip.bg._height = tooltip.field._height+2;
                }
                tooltip._alpha += (tooltip.alphaTo - tooltip._alpha)/3;
                tooltip._x = _xmouse + 30;
                tooltip._y = _ymouse + 30;
        }else{
                tooltip._alpha = 0;
        }
        //
        if(useSubtitle){
                btns.subtitle.text = this["thumb"+rotImageNumber].captionText;
                if(useSecondCaption){
                        btns.subtitle2.text = this["thumb"+rotImageNumber].captionText2;
                }else{
                        btns.subtitle2.text = ""
                }
        }else{
                btns.subtitle.text = ""
                btns.subtitle2.text = ""
        }
};
btns.btnLeft.onPress = function() {
        rotImageNumber += 1;
        if (rotImageNumber>=total) {
                rotImageNumber = 0;
        }
        rotGoto -= perinstance;
};
//
btns.btnRight.onPress = function() {
        rotImageNumber -= 1;
        if (rotImageNumber<0) {
                rotImageNumber = total-1;
        }
        rotGoto += perinstance;
};
//functions
function getX(number) {
        ax = centerX+(1-distanceValue)*spanX*(Math.cos(rot+number*perinstance))*(perspectiveRatio+(1-perspectiveRatio)*(Math.sin(rot+number*perinstance)+1)/2);
        return ax;
}
function getY(number) {
        //ay = centerY+(1-distanceValue)*spanY*Math.sin(rot+number*perinstance);
        ay = centerY+(1-distanceValue)*spanY*(Math.sin(rot+number*perinstance))*(perspectiveRatio+(1-perspectiveRatio)*(Math.sin(rot+number*perinstance)+1)/2);
        return ay;
}
function getScale(number) {
        sc = (minimumscale+(1-minimumscale)*(1+(Math.sin(rot+number*perinstance)))/2)*100;
        sc *= 1-distanceValue;
        return sc;
}
function blur(dis, number) {
        if (useFocalBlur) {
                fb = 12*focalBlurValue;
                f = 20*distanceValue+fb-fb*(1+(Math.sin(rot+number*perinstance)))/2;
                var blur = new flash.filters.BlurFilter(f, f, 1);
                minf = -50;
                darkness = -130*distanceValue+minf+Math.round((1+(Math.sin(rot+number*perinstance)))/(-2/minf));
                var coma = [1, 0, 0, 0, darkness, 0, 1, 0, 0, darkness, 0, 0, 1, 0, darkness, 0, 0, 0, 1, 0];
                var brightness = new flash.filters.ColorMatrixFilter(coma);
                var tmpFilters:Array = dis.filters;
                tmpFilters.push(blur);
                tmpFilters.push(brightness);
                dis.filters = tmpFilters;
        }
}
function motionBlur(dis, xdist, ydist) {
        if (useMotionBlur) {
                var blur = new flash.filters.BlurFilter(xdist*motionBlurValue, ydist*motionBlurValue, 1);
                var tmpFilters:Array = dis.filters;
                tmpFilters.push(blur);
                dis.filters = tmpFilters;
        }
}
function reflect(src, target, alpha, wi, he) {
        var bdata:BitmapData = new BitmapData(wi/(src._xscale/100), he/(src._yscale/100), true, 0x00ffffff);
        bdata.draw(src);
        var refmc:MovieClip = target.createEmptyMovieClip("refmc", 0);
        refmc.attachBitmap(bdata,0);
        refmc._width = wi;
        refmc._height = he;
        refmc._yscale = -refmc._yscale;
        refmc._y = he;
        var rmask = target.createEmptyMovieClip("rmask", 1);
        var matrix = {matrixType:"box", x:0, y:0, w:wi, h:he, r:(90/180)*Math.PI};
        rmask.beginGradientFill("linear",[0xffffff, 0xffffff],[alpha, 0],[0, 100],matrix,"pad");
        rmask.moveTo(0,0);
        rmask.lineTo(0,he);
        rmask.lineTo(wi,he);
        rmask.lineTo(wi,0);
        rmask.lineTo(0,0);
        rmask.endFill();
        refmc.cacheAsBitmap = true;
        rmask.cacheAsBitmap = true;
        refmc.setMask(rmask);
}
function centerObject(ob){
        ob._x = centerX;
        ob._y = centerY-50;
        ob.swapDepths((minimumscale+(1-minimumscale)*(1+(Math.sin(Math.PI)))/2)*10000);
        ob._visible = true;
}


zigaYO 13.09.2010 21:13

Код AS3:

over = false;
reflected = false;
alphatweened = false;
alphaTo = 0;
if(num == undefined){
        _visible = false;
}
//navbar
duplicateMovieClip(_parent.btns.intNavbar, "nav"+num, _parent.btns.getNextHighestDepth());
navRef = _parent.btns["nav"+num];
navRef._visible = true;
navRef.num = num;
navRef._x = _parent.btns.navbar_bg._x+(_parent.btns.navbar_bg._width/(_parent.total-1))*(_parent.total-num);
if (num == 0) {
        navRef._x = _parent.btns.navbar_bg._x;
}
navRef._y = _parent.btns.navbar_bg._y;
//
this.onEnterFrame = function() {
        if (_parent.rotationKind == 1) {
                if (!enableButtonWhenInFront && num == _parent.rotImageNumber) {
                        //loader in front of button
                        loader.swapDepths(-16378);       
                        button.useHandCursor = false;
                } else {
                        //loader behind button
                        loader.swapDepths(-16380);       
                        button.useHandCursor = true;
                }
        }
        if (_parent.rotationKind == 0) {
                if (!enableButtonWhenInFront) {
                        //loader in front of button
                        loader.swapDepths(-16378);       
                        button.useHandCursor = false;
                } else {
                        //loader behind button
                        loader.swapDepths(-16380);       
                        button.useHandCursor = true;
                }
        }
        //tween fading 
        if (alphatweened == false && _parent.overNumber != num && _parent.overNumber != "" && _parent.useFadeOnMouseOver) {
                alphatweened = true;
                alphaTo = _parent.mouseOverAlphaValue*100;
        }
        if (alphatweened == true && (_parent.overNumber == num || _parent.overNumber == "") && _parent.useFadeOnMouseOver && reflected) {
                alphatweened = false;
                alphaTo = 100;
        }
        loader._alpha += (alphaTo-loader._alpha)/10;
        reflection._alpha += (alphaTo-reflection._alpha)/10;
        sy = _parent.spanY*4;
        if (sy<0) {
                sy = 0;
        }
        if (sy>loader._height) {
                sy = loader._height;
        }
        if (reflected) {
                reflection._height = sy;
        }
        //preload       
        ldd = loader.getBytesLoaded();
        ttl = loader.getBytesTotal();
        if (loader._url != this._url && ldd != ttl) {
                preloader._visible = true;
                preloader.gotoAndStop(Math.round((ldd/ttl*100)/16.67));
                //loader._visible = false;
        } else {
                if (reflected == false && loader._url != this._url) {
                        size();
                        reflected = true;
                }
                preloader._visible = false;
        }
        if (this._name != "intThumb" /*&& reflected*/) {
                _x = _parent.getX(num);
                _y = _parent.getY(num);
                sc = _parent.getScale(num);
                _xscale = sc;
                _yscale = sc;
                while (_parent.getInstanceAtDepth(Math.round(sc)) != undefined) {
                        sc += 1;
                }
 
                this.swapDepths(Math.round(sc*100));
                this.filters = "";
                _parent.blur(this,num);
                _parent.motionBlur(this,Math.abs(_x-prevx),Math.abs(_y-prevy));
        }
        prevx = _x;
        prevy = _y;
 
        if (myReflectionValue != _parent.reflectionAlphaValue && reflected) {
                reflected = false;
                size();
        }
};
function size() {
        loader._visible = true;
        //resize 
        loader._xscale = 100;
        loader._yscale = 100;
        loader._x = -loader._width/2;
        loader._y = -loader._height;
        button._width = loader._width;
        button._height = loader._height;
        button._y = loader._y;
        button._x = loader._x;
        mmask._width = loader._width;
        mmask._height = loader._height;
        mmask._y = loader._y;
        mmask._x = loader._x;
        reflection._x = loader._x;
        reflection._y = loader._y+loader._height;
        if (_parent.useReflection) {
                myReflectionValue = _parent.reflectionAlphaValue;
                _parent.reflect(loader,reflection,_parent.reflectionAlphaValue*100,loader._width,loader._height);
        }
        alphaTo = 100;
}


samana 13.09.2010 21:25

Это ведь AS3 ветка.

Wolsh 14.09.2010 00:59

переезжаем...

Animator84 17.11.2010 14:58

Такая же проблема (((. Помогите пожалуйста разобраться с проблемой. Немогу сдать сайт.

Может кто-нибудь всё же поможет разобраться с этой проблемой! ((((((((((


Часовой пояс GMT +4, время: 11:21.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.