FlashElements
%Europe/Berlin %666 %2005, 17:00
Beste Flashers,
Het betreft hier een Class waarin ik met een mouseEvent een functie aanroep.
Dit gaat echter niet helemaal goed:
Code ziet er zo uit:
class menu {
var currentMenu:String;
var thisClip:MovieClip;
var menuItem:Array = new Array();
private var mKleur:Number = 0x005094;
function menu(myClip:MovieClip) {
thisClip = myClip.createEmptyMovieClip('menuHolder', 2);
}
function menuInit(activeMenu:String) {
currentMenu = activeMenu;
}
function menuArray(menuArray:Array) {
for (var n = 0; n<menuArray.length; n++) {
menuItem[n] = menuArray[n].split("||");
}
}
function mc_menu(activeMenu:String):MovieClip {
return eval('mc_menu'+activeMenu);
}
function actions(item:MovieClip,pos:Number) {
item.mKleur = mKleur;
item.mX = mc_menu(currentMenu)._x;
item.mWidth = mc_menu(currentMenu)._width;
item.pos = pos;
item.onRollOver = function () {
drawBox(item.mX,item.pos*23,item.mWidth,20,0xFFFFF F,item.mKleur,20);
}
}
function makeMenuItems() {
for (var i=0; i<menuItem.length; i++) {
var item:MovieClip = thisClip.createEmptyMovieClip("mc_menuItem"+i,i);
item._y = 100;
setText(item,menuItem[i][0],i, mc_menu(currentMenu)._x, (i*23)+1, mc_menu(currentMenu)._width, 20, "left", false);
actions(item,i);
}
}
public function drawBox(item:MovieClip, x0:Number, y0:Number, width:Number, height:Number, borderColor:Number, fillColor:Number, tans:Number) {
item.lineStyle(1, borderColor, 100);
item.beginFill(fillColor, tans);
item.moveTo(x0, y0);
item.lineTo((x0+width), y0);
item.lineTo((x0+width), (y0+height));
item.lineTo((x0), (y0+height));
item.lineTo(x0, y0);
item.endFill();
}
function setText(item:MovieClip, textItem:String, itemNumber:Number, x0:Number, y0:Number, textWidth:Number, textHeight:Number, align:String, bold:Boolean) {
item.createTextField("this_txt" + itemNumber, (itemNumber+500), x0, y0, textWidth, textHeight);
var this_fmt:TextFormat = new TextFormat();
this_fmt.font = "verdana";
this_fmt.size = 11;
this_fmt.color = 0x000000;
this_fmt.leftMargin = 3;
this_fmt.align = align;
this_fmt.bold = bold;
item["this_txt" + itemNumber].embedFonts = false;
item["this_txt" + itemNumber].selectable = false;
item["this_txt" + itemNumber].text = textItem;
item["this_txt" + itemNumber].setTextFormat(this_fmt);
}
}
Wat ik eigenlijk wil is dus in een [movieclip].onMouseOver een functie binnen de class aanroepen met alle variabelen die reeds in de class gezet zijn.
Iemand enige idee wat ik hier niet goed doe ?
De fout zit 'm sowiezo in de funktie actions() en dan met name in item.onRollOver
Bedankt al vast voor de moeite :)
FlashElements
Het betreft hier een Class waarin ik met een mouseEvent een functie aanroep.
Dit gaat echter niet helemaal goed:
Code ziet er zo uit:
class menu {
var currentMenu:String;
var thisClip:MovieClip;
var menuItem:Array = new Array();
private var mKleur:Number = 0x005094;
function menu(myClip:MovieClip) {
thisClip = myClip.createEmptyMovieClip('menuHolder', 2);
}
function menuInit(activeMenu:String) {
currentMenu = activeMenu;
}
function menuArray(menuArray:Array) {
for (var n = 0; n<menuArray.length; n++) {
menuItem[n] = menuArray[n].split("||");
}
}
function mc_menu(activeMenu:String):MovieClip {
return eval('mc_menu'+activeMenu);
}
function actions(item:MovieClip,pos:Number) {
item.mKleur = mKleur;
item.mX = mc_menu(currentMenu)._x;
item.mWidth = mc_menu(currentMenu)._width;
item.pos = pos;
item.onRollOver = function () {
drawBox(item.mX,item.pos*23,item.mWidth,20,0xFFFFF F,item.mKleur,20);
}
}
function makeMenuItems() {
for (var i=0; i<menuItem.length; i++) {
var item:MovieClip = thisClip.createEmptyMovieClip("mc_menuItem"+i,i);
item._y = 100;
setText(item,menuItem[i][0],i, mc_menu(currentMenu)._x, (i*23)+1, mc_menu(currentMenu)._width, 20, "left", false);
actions(item,i);
}
}
public function drawBox(item:MovieClip, x0:Number, y0:Number, width:Number, height:Number, borderColor:Number, fillColor:Number, tans:Number) {
item.lineStyle(1, borderColor, 100);
item.beginFill(fillColor, tans);
item.moveTo(x0, y0);
item.lineTo((x0+width), y0);
item.lineTo((x0+width), (y0+height));
item.lineTo((x0), (y0+height));
item.lineTo(x0, y0);
item.endFill();
}
function setText(item:MovieClip, textItem:String, itemNumber:Number, x0:Number, y0:Number, textWidth:Number, textHeight:Number, align:String, bold:Boolean) {
item.createTextField("this_txt" + itemNumber, (itemNumber+500), x0, y0, textWidth, textHeight);
var this_fmt:TextFormat = new TextFormat();
this_fmt.font = "verdana";
this_fmt.size = 11;
this_fmt.color = 0x000000;
this_fmt.leftMargin = 3;
this_fmt.align = align;
this_fmt.bold = bold;
item["this_txt" + itemNumber].embedFonts = false;
item["this_txt" + itemNumber].selectable = false;
item["this_txt" + itemNumber].text = textItem;
item["this_txt" + itemNumber].setTextFormat(this_fmt);
}
}
Wat ik eigenlijk wil is dus in een [movieclip].onMouseOver een functie binnen de class aanroepen met alle variabelen die reeds in de class gezet zijn.
Iemand enige idee wat ik hier niet goed doe ?
De fout zit 'm sowiezo in de funktie actions() en dan met name in item.onRollOver
Bedankt al vast voor de moeite :)
FlashElements