Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
Home
Discussion GroupsGeneralPHPASPPerlColdFusionFlashHTML, CSS, ScriptsBrowsers

Webmaster Forum / Flash / Flash Site Design / February 2007



Tip: Looking for answers? Try searching our database.

XML Photo Gallery

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
GAMBRKER - 18 Feb 2007 21:50 GMT
First off, please don't be mad that I am using a template. I dont know where to
start creating an XML gallery from scratch. Anyway, I've customized one, and
have found that it works fine if it is just the .swf by itself. HOWEVER, if I
load the swf into a movie clip, or if I mask it, it gets all jacked up. The
pictures still show up, but the thumbnail functionality is what doesn't work
right. You can see for yourself:

http://www.yourtimelesswedding.com/works

http://www.yourtimelesswedding.com/doesntwork

My reason for putting it into a new clip is because I'm am loading it into a
main swf. I am sure it may be in the code but don't really know where to look.
Any help is greatly appreciated. Below is the only action script in the fla.

function loadPhotoXML(filename)
{
    PhotoXML.ignoreWhite = true;
    PhotoXML.load(filename);
    PhotoXML.onLoad = function (success)
    {
        if (success)
        {
            PhotoNumber = 0;
            RootNode = this.firstChild;
            TotalPhotos = RootNode.childNodes.length;
            thumbnails = [];
            for (i = 0; i < TotalPhotos; i++)
            {
                thumbnails[i] =
RootNode.childNodes[i].childNodes[1].firstChild.nodeValue;
                thumbnails_fn(i);
            } // end of for
            showPhoto(PhotoNumber);
        } // end if
    };
} // End of the function
function showPhoto(PhotoNum)
{
    if (PhotoNum == TotalPhotos - 1)
    {
        next_btn.enabled = false;
    }
    else
    {
        next_btn.enabled = true;
    } // end else if
    if (PhotoNum == 0)
    {
        previous_btn.enabled = false;
    }
    else
    {
        previous_btn.enabled = true;
    } // end else if
    if (loaded == filesize)
    {
        var _loc2 = RootNode.childNodes[PhotoNum].attributes.filename;
        var _loc3 = RootNode.childNodes[PhotoNum].firstChild.nodeValue;
        empty_mc.loadMovie("photos/" + _loc2);
    } // end if
} // End of the function
function nextImage()
{
    if (p < TotalPhotos - 1)
    {
        PhotoNumber = PhotoNumber + 1;
        if (loaded == filesize)
        {
            empty_mc._alpha = 0;
            showPhoto(PhotoNumber);
        } // end if
    } // end if
} // End of the function
function prevImage()
{
    PhotoNumber = PhotoNumber - 1;
    showPhoto(PhotoNumber);
} // End of the function
function thumbNailScroller()
{
    this.createEmptyMovieClip("tscroller", 1000);
    scroll_speed = 10;
    tscroller.onEnterFrame = function ()
    {
        if (_root._ymouse >= thumbnail_mc._y && _root._ymouse <=
thumbnail_mc._y + thumbnail_mc._height)
        {
            if (_root._xmouse >= hit_right._x - 40 &&
thumbnail_mc.hitTest(hit_right))
            {
                thumbnail_mc._x = thumbnail_mc._x - scroll_speed;
            }
            else if (_root._xmouse <= 40 && thumbnail_mc.hitTest(hit_left))
            {
                thumbnail_mc._x = thumbnail_mc._x + scroll_speed;
            } // end else if
        else
        {
            delete tscroller.onEnterFrame;
        } // end else if
        }
    };
} // End of the function
function thumbnails_fn(k)
{
    thumbnail_mc.createEmptyMovieClip("t" + k,
thumbnail_mc.getNextHighestDepth());
    tlistener = new Object();
    tlistener.onLoadInit = function (target_mc)
    {
        target_mc._x = hit_left._x + (eval("thumbnail_mc.t" + k)._width + 2) *
k;
        target_mc.pictureValue = k;
        target_mc.onRelease = function ()
        {
            PhotoNumber = this.pictureValue - 1;
            nextImage();
        };
        target_mc.onRollOver = function ()
        {
            this._alpha = 50;
            thumbNailScroller();
        };
        target_mc.onRollOut = function ()
        {
            this._alpha = 100;
        };
    };
    image_mcl = new MovieClipLoader();
    image_mcl.addListener(tlistener);
    image_mcl.loadClip(thumbnails[k], "thumbnail_mc.t" + k);
} // End of the function
p = 0;
var PhotoXML = new XML();
var PhotoNumber;
var TotalPhotos;
var RootNode;
loadPhotoXML("photos.xml");
listen = new Object();
listen.onKeyDown = function ()
{
    if (Key.getCode() == 37)
    {
        prevImage();
    }
    else if (Key.getCode() == 39)
    {
        nextImage();
    } // end else if
};
this.onEnterFrame = function ()
{
    filesize = empty_mc.getBytesTotal();
    loaded = empty_mc.getBytesLoaded();
    preloader._visible = true;
    if (loaded != filesize)
    {
        preloader.preload_bar._xscale = 100 * loaded / filesize;
    }
    else
    {
        preloader._visible = false;
        if (empty_mc._alpha < 100)
        {
            empty_mc._alpha = empty_mc._alpha + 10;
        } // end if
    } // end else if
};
Key.addListener(listen);
previous_btn.onRelease = function ()
{
    prevImage();
};
next_btn.onRelease = function ()
{
    nextImage();
};
The Feldkircher - 20 Feb 2007 18:18 GMT
Hi

I think the problem is, you make reference to _root in your hit test function,
when you load a swf into the main timeline you should use an alternative to
root, because this conflicts with the root of the main timeline.

Outside of your xml function create the following variable var home:MoivieClip
= this;

Then change all your _root references for home, for example      --          
home._xmouse

hope it helps
GAMBRKER - 27 Feb 2007 00:12 GMT
You were right, it was the reference to _root. I removed all occurences and it works just fine now. Thanks.
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2009 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.