I’m working on a kind-of “Flash OS” for a school project, but I’m having a few problems.
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