onRelease Not Working!

I’m working on a kind-of “Flash OS” for a school project, but I’m having a few problems. :frowning:

The main one right now is that when you go up and click backgrounds, then choose a color, they all come out as the last one. Here is my AS releating to this (FLA too big)

Functions


//Makes New Windows
function makeNewWindow(INSTANCE, TITLE, WIDTH, HEIGHT, UNIQUE) {
	_root.z += 2;
	_root.createEmptyMovieClip(INSTANCE+_root.z, _root.z);
	with (eval("_root."+INSTANCE+_root.z)) {
		import flash.filters.GlowFilter;
		var glow:GlowFilter = new GlowFilter(0x000000, 0.5, 10, 10, 2, 5);
		var contentGlow:GlowFilter = new GlowFilter(0x000000, 0.4, 20, 20, 2, 5, true);
		filters = [glow];
		createEmptyMovieClip("closeBtn", 3);
		createEmptyMovieClip("topBar", 2);
		createEmptyMovieClip("contentBox", 1);
		contentBox.filters = [contentGlow];
		contentBox._y = 20;
		_y = _global.POSY+45;
		_x = _global.POSX;
		_global.POSY += 25;
		_global.POSX += 25;
		with (closeBtn) {
			attachMovie("CloseBtn", "Button", 1);
		}
		closeBtn.onRelease = function() {
			removeMovieClip();
		};
		with (topBar) {
			clear();
			lineStyle(1, 0x000000, 25);
			//beginFill(0xAAAAAA, 100);
			beginGradientFill("linear", [0xBBBBBB, 0x888888], [100, 100], [0, 255], {matrixType:"box", x:0, y:-20, w:20, h:20, r:90/180*Math.PI});
			moveTo(0, 0);
			curveTo(0, -20, 20, -20);
			lineTo(WIDTH-20, -20);
			curveTo(WIDTH, -20, WIDTH, 0);
			endFill();
			//Title Bar
			createTextField("header", 1, 0, -22, WIDTH, 22);
			header.text = TITLE;
			header.setTextFormat(titleBarFormat);
		}
		topBar.onPress = function() {
			startDrag();
			_root.z += 2;
			swapDepths(_root.z);
		};
		topBar.onMouseUp = function() {
			stopDrag();
			if (_y<45) {
				_y = 45;
			}
			if (_x<0) {
				_x = 0;
			}
			if (_y>stageHeight) {
				_y = stageHeight;
			}
			if (_x+WIDTH>stageWidth) {
				_x = stageWidth-WIDTH;
			}
		};
		with (contentBox) {
			clear();
			lineStyle(1, 0x000000, 25);
			beginFill(0xEEEEEE, 100);
			moveTo(0, -20);
			lineTo(0, HEIGHT-20);
			lineTo(WIDTH-1, HEIGHT-20);
			lineTo(WIDTH-1, -20);
			endFill();
		}
		contentBox.onRelease = function() {
			_root.z += 2;
			swapDepths(_root.z);
		};
	}
	return "_root."+INSTANCE+_root.z;
}
//Add New Menuitem
function newMenuItem(TEXT) {
	_root.z += 2;
	var WIDTH = length(TEXT)*12;
	_root.TaskBar.attachMovie("TaskBarItem", TEXT+_root.z, _root.z);
	with (eval("_root.TaskBar."+TEXT+_root.z)) {
		TextBox.text = TEXT;
		TextBox._width = WIDTH;
		TaskBackground._width = WIDTH+10;
		_x = taskBarX;
		taskBarX += WIDTH+11;
		return "_root.TaskBar."+TEXT+_root.z;
	}
}

Problem Code


_root.attachMovie("TaskBar", "TaskBar", 1000);
BG = newMenuItem("Background");
eval(BG).onRelease = function() {
	var WINDOW = makeNewWindow("BGPREFS", "Background Preferences", 250, 300, true);
	with (eval(WINDOW).contentBox) {
		createEmptyMovieClip("ColorBoxes", 1);
		with (ColorBoxes) {
			_x = 15;
			_y = 15;
			currx = 0;
			curry = 0;
			for (curr=0; curr<colorpal.length; curr++) {
				_root.z += 2;
				createEmptyMovieClip(colorpal[curr], curr);
				with (eval(colorpal[curr])) {
					set(WINDOW+".contentBox.ColorBoxes."+colorpal[curr]+".thisCols", colorpal[curr]);
					with(eval(WINDOW+".contentBox.ColorBoxes."+colorpal[curr])) {
						onRelease = function() {
							_global.bg = thisCols;
							trace(thisCols);
							trace(_name);
						}
					}
					_x = currx;
					_y = curry;
					clear();
					lineStyle(1, 0x000000, 25);
					beginFill("0x"+colorpal[curr], 100);
					moveTo(2.5, 0);
					lineTo(52.5, 0);
					lineTo(52.5, 25);
					lineTo(2.5, 25);
					endFill();
					currx += 55;
					if (currx == 220) {
						currx = 0;
						curry += 27.5;
					}
				}
			}
		}
	}
};
newMenuItem("New Text Document");
newMenuItem("New Image");

The background is automatically set each frame by _global.bg, so I need be able to change _global.bg to each color.

Thanks for any help!

Zach