A Flash Developer Resource Site

Results 1 to 4 of 4

Thread: How in the...? Hide XML/array gallery

Hybrid View

  1. #1
    Member
    Join Date
    Feb 2002
    Location
    Detroit
    Posts
    51

    How in the...? Hide XML/array gallery

    http://www.thewoj.com/thewoj.swf

    If you look at the link I have a gallery in place that works thus far. My problem is when clicking the nav. buttons (Bio, contact) the xml gallery continues over into those frames.

    The xml file is not a movie clip. The grid is writen and run using actionscript below. I figured this would be an easy fix but ive been coming back to this thing for over a week now and it seems like everyone else on the board is stumped.

    PHP Code:
    cliparray = [];
    columns 5;
    spacex =80
    spacey
    =75
    function loadXML(loaded) {
        if (
    loaded) {
            
    xmlNode this.firstChild;
            
    image = [];
            
    description = [];
            
    thumbnails = [];
            
    total xmlNode.childNodes.length;
            for (
    i=0i<totali++) {
                
    image[i] = xmlNode.childNodes[i].childNodes[0].firstChild.nodeValue;
                
    description[i] = xmlNode.childNodes[i].childNodes[1].firstChild.nodeValue;
                
    thumbnails[i] = xmlNode.childNodes[i].childNodes[2].firstChild.nodeValue;
            }
            
    sload()
            
    firstImage();
        } else {
            
    content "file not loaded!";
        }
    }
    function 
    drawSquare(clipdepthcolourxywh) {
        var 
    mc clip.createEmptyMovieClip("clip"+depthdepth);
        
    mc._x x;
        
    mc._y y;
        
    mc.lineStyle();
        
    mc.beginFill(colour);
        
    mc.lineTo(w0);
        
    mc.lineTo(wh);
        
    mc.lineTo(0h);
        
    mc.endFill();
        return 
    mc;
    }
    xmlData = new XML();
    xmlData.ignoreWhite true;
    xmlData.onLoad loadXML;
    xmlData.load("images.xml");
    ///////////////////////////////////// 
    listen = new Object();
    listen.onKeyDown = function() {
        if (
    Key.getCode() == Key.LEFT) {
            
    prevImage();
        } else if (
    Key.getCode() == Key.RIGHT) {
            
    nextImage();
        }
    };
    Key.addListener(listen);
    previous_btn.onRelease = function() {
        
    prevImage();
    };
    next_btn.onRelease = function() {
        
    nextImage();
    };
    ///////////////////////////////////// 
    0;
    this.onEnterFrame = function() {
        
    filesize picture.getBytesTotal();
        
    loaded picture.getBytesLoaded();
        
    preloader._visible true;
        if (
    loaded != filesize) {
            
    preloader.preload_bar._xscale 100*loaded/filesize;
        } else {
            
    preloader._visible false;
            if (
    picture._alpha<100) {
                
    picture._alpha += 10;
            }
        }
    };
    function 
    nextImage() {
        if (
    p<(total-1)) {
            
    p++;
            if (
    loaded == filesize) {
                
    picture._alpha 0;
                
    picture.loadMovie(image[p], 1);
                
    desc_txt.text description[p];
                
    picture_num();
            }
        }
    }
    function 
    prevImage() {
        if (
    p>0) {
            
    p--;
            
    picture._alpha 0;
            
    picture.loadMovie(image[p], 1);
            
    desc_txt.text description[p];
            
    picture_num();
        }
    }
    function 
    firstImage() {
        if (
    loaded == filesize) {
            
    picture._alpha 0;
            
    picture.loadMovie(image[0], 1);
            
    desc_txt.text description[0];
            
    picture_num();
        }
    }
    function 
    picture_num() {
        
    current_pos p+1;
        
    pos_txt.text current_pos+" / "+total;
    }
    var 
    ij=0
    function sload() {
        for (var 
    0i<image.lengthi++) {
            var 
    clip drawSquare(thisi0006060);
            
    clip._x =350+ (i%columns)*spacex;
            
    clip._y =205Math.floor(i/columns)*spacey;
            var 
    clap =clip.createEmptyMovieClip("tt",1)
            
    clap._x 2
            clap
    ._y 2
            cliparray
    .push(clap);
            
    clip.pictureValue =i;
            
    clip.onRelease = function() {
                
    this.pictureValue-1;
                
    nextImage();
            };
            
    clip.onRollOver = function() {
                
    this._alpha 50;
                
            };
            
    clip.onRollOut = function() {
                
    this._alpha 100;
            };
        }
        
    startload()
        
    }
    this.createEmptyMovieClip("checker",1000)
    function 
    checkload() {
        
    checker.onEnterFrame = function() {
            
            if (
    cliparray[ij]._width) {
                
                
    delete this.onEnterFrame;
                if (
    ij<cliparray.length-1) {
                    
    ij++;
                    
    startload();
                }
            }
        };
    }
    function 
    startload() {
        
    cliparray[ij].loadMovie(thumbnails[ij]);
        
    checkload();


  2. #2
    FK'n_dog a_modified_dog's Avatar
    Join Date
    Apr 2003
    Location
    "aaarf"
    Posts
    9,176
    what have you tried ?
    when you move frames, run a loop to remove created clips

    for (var i = 0; i<image.length; i++) {
    this["clip"+i].removeMovieClip();
    }

  3. #3
    Student
    Join Date
    Apr 2001
    Location
    -
    Posts
    4,756
    can you tell me wich is the movieClip(s) holding the stuff?
    var clip = drawSquare(this, i, 0, 0, 0, 60, 60);
    clip._x =350+ (i%columns)*spacex;
    clip._y =205+ Math.floor(i/columns)*spacey;
    var clap =clip.createEmptyMovieClip("tt",1)
    clap._x = 2
    this is horrible cascading imo. shrouds the original path´s, but my guess is that the path´s are:
    _root["clip"+0].tt
    _root["clip"+1].tt
    _root["clip"+2].tt
    ...
    that sure took me while to get

    anyway you could simply use a array that deletes the movieClips that need to be removed, e.g
    PHP Code:
    dumpMcs = new Array(); 
    and each time you created a new movieClip or a container (if it contains sub movieCLip those sub movieClip dont need to be added), you add that link of the movieClip, e.g
    PHP Code:
    dumpMcs.push_root["clip"+i] ) 
    then finally if you switch to another category and want to remove these registered movieCLips use:
    PHP Code:
    for (var 0i<dumpMcs.lengthi++) {
        
    dumpMcs[i].removeMovieClip();


    edit: doggy was faster than me,- with basicly the same concept

  4. #4
    Member
    Join Date
    Feb 2002
    Location
    Detroit
    Posts
    51
    Thanks guys. I figured it out. I had the action script above in a blank keyframe on the timeline instead of the movie clip with the gallery container.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  




Click Here to Expand Forum to Full Width

HTML5 Development Center