我有这个对象构造函数,它有一个预加载的预加载方法 翻转图像对。
所以,我有两个问题:
1:为什么警报对话框只是在做什么?STR:'没有附加数据? (这种类型的问题通常是由于我的失明。
2:是否可以将this.buttons_on和this.buttons_off视为对象,而不是
数字索引,使用sting索引,因此rollover事件处理程序不需要循环 buttons_on和buttons_off数组得到应该换出的那个;
function _NAV()
{
this.list_off = [];
this.list_on = [];
this.buttons_on = [];
this.buttons_off = [];
this.buttons_all = {}; // .on and .off
this.button_events = {};
this.img = true;
this.img_ids = {}
this.preLoad = function()
{
if(document.images) //creates image object array for preload.
{
var STR = '';
for(var i = 0; i < list_off.length; i++)
{
var lab_on = list_on[i].replace('\.jpg', '');
var lab_off = list_off[i].replace('\.jpg', '');
STR += lab_on+'||'+lab_off+"\n";
this.buttons_on[i] = new Image();
this.buttons_on[i].src = srcPath+list_on[i];
this.bottons_on[i].id = img_ids[i];
this.buttons_off[i] = new Image();
this.buttons_off[i].src = srcPath+list_off[i];
this.buttons_off[i].id = img_ids[i];
}
alert("STR: "+STR);
}
else
{
this.img = false
}
}
//// ...etc...
这是onload事件触发前的调用
var rollover = new _NAV();
rollover.preLoad();
以下是使用的数组
var srcPath = '../nav_buttons/';
var list_off = new Array(); // not new Object;
list_off[0] = "bio_off.jpg";
list_off[1] = "cd_off.jpg";
list_off[2] = "home_off.jpg";
list_off[3] = "inst_off.jpg";
list_off[4] = "photo_off.jpg";
list_off[5] = "rev_off.jpg";
list_off[6] = "samp_off.jpg";
var list_on = new Array();
list_on[0] = "bio_on.jpg";
list_on[1] = "cd_on.jpg";
list_on[2] = "home_on.jpg";
list_on[3] = "inst_on.jpg";
list_on[4] = "photo_on.jpg";
list_on[5] = "rev_on.jpg";
list_on[6] = "samp_on.jpg";
var img_ids = new Array();
感谢您的时间和关注。
答案 0 :(得分:0)
尝试PHPGlue的建议,并在所有成员变量(this.
,this.list_on
,this.list_off
)前面添加this.img_ids
你也有一行错字。 bottons_on
拼写错误。
this.bottons_on[i].id = img_ids[i];
是的,您可以使用字符串作为索引。只需创建buttons_on
和buttons_off
个对象而不是数组。
function _NAV()
{
this.buttons_on = {};
this.buttons_off = {};
// For example:
this.buttons_off[lab_off] = new Image();
}