主题:  请高手帮我看一下代码,很短的

Aw3000

职务:普通成员
等级:1
金币:0.0
发贴:79
#12003/1/9 14:54:42
k = 2;
Num = 1;
//-----------------------------------------
Color1 = new Color(mc1.shape1);
Color2 = new Color(mc1.shape2);
//-----------------------------------------
previewColor = new Color(previewBox);
previewColor.setRGB(0x000000);
//-----------------------------------------
this.onEnterFrame = function() {
    previewColor.setRGB(0xff9900);
    for (i=1; i<=k; i++) {
    this["mc"+Num]["shape"+i].onRelease = function() {
    if (this.hitTest(_root._xmouse,_root._ymouse, true)) {
        this["Color"+i].setRGB(0xff9900);
        }
    };
    }
};
//----------------------------------------------
哪位好心人帮我看看错在哪里。我的初衷是想动态创建color对象&&动态设置mc颜色。

改了一下,有笔误。

编辑历史:[这消息被Aw3000编辑过(编辑时间2003-01-09 15:39:32)]
[这消息被Aw3000编辑过(编辑时间2003-01-09 15:40:31)]


janlay

职务:管理员
等级:7
金币:28.0
发贴:7244
#22003/1/9 15:27:06
是不是改的别人的?怎么一些地方看起来不对呀
btn=undefined
shirtNum=undefined
"shirt"疑为"mc"



Aw3000

职务:普通成员
等级:1
金币:0.0
发贴:79
#32003/1/9 15:36:58
sorry.笔误。



janlay

职务:管理员
等级:7
金币:28.0
发贴:7244
#42003/1/9 16:01:56
"color"+i不在this["mc"+Num]["shape"+i]里面,而在外面。
如果你这个效果外面没有再套mc,把this["color"+i]改成_root["color"+i]
_root._xmouse,_root._ymouse,改成this._xmouse,this._ymouse
既然release事件发生,肯定已经hittest了,所以这个判断是多余的。



Aw3000

职务:普通成员
等级:1
金币:0.0
发贴:79
#52003/1/9 16:22:27
k = 2;
Num = 1;
//-----------------------------------------
Color1 = new Color(mc1.shape1);
Color2 = new Color(mc1.shape2);
//-----------------------------------------
this.onEnterFrame = function() {
for (i=1; i<=k; i++) {
_root["mc"+Num]["shape"+i].onRelease = function() {
_root["Color"+i].setRGB(MyColor);
};
}
};
//mycolor为自定义的颜色值。

janlay:谢谢。我按照你的方法修改了,如上。可是还是不能给shape1 & shape2上色。另外。我可不可以这样写(想动态创建color对象):

k = 2;
Num = 1;
//-----------------------------------------
this.onEnterFrame = function() {
for (i=1; i<=k; i++) {
_root["Color"+i]=new Color(_root["mc"+Num]["shape"+i])
_root["mc"+Num]["shape"+i].onRelease = function() {
_root["Color"+i].setRGB(MyColor);
};
}
};



s22

职务:版主
等级:4
金币:10.0
发贴:1634
#62003/1/10 8:47:11
k = 2;
Num = 1;
//-----------------------------------------
this.onEnterFrame = function() {
for (i=1; i<=k; i++) {
_root["mc"+Num]["shape"+i].onRelease = function() {
my_color=new color(this._parent);
my_color.setRGB("0x99ccff");
};
}
=======
test
};



Aw3000

职务:普通成员
等级:1
金币:0.0
发贴:79
#72003/1/10 10:25:18
s22:
谢谢你的指导,现在可以给mc上色了,不过还有问题以下问题:
1,不能区分shape1,shape2;
按钮按下时shape1,shape2被同时上色,这是不希望的,希望的是被单独上色。
2,setRGB的颜色值会有很多个,所以在这里我用了一个变量MyColor,然后通过别的按钮给这个变量赋值。问题是,我如何区分shape1,shap2被按下时MyColor的值?

我原先的想法是这样的,通过为每个shape创建一个颜色对象,然后当按下相应的shape时,再为该shpae上色,同时,把这个颜色值赋给新的变量用于其他用处,比如发送给程序接受等。

//上述的shape指的是mc实例。



s22

职务:版主
等级:4
金币:10.0
发贴:1634
#82003/1/10 13:51:09
k = 2;
Num = 1;
//-----------------------------------------
this.onEnterFrame = function() {
for (i=1; i<=k; i++) {
_root["mc"+Num]["shape"+i].onRelease = function() {
my_color=new color(this);//把这里改为THIS
my_color.setRGB("0x99ccff");
};
}
=======
test
我不知道你说的mycolor到底怎么应用。
我想这应该已经不是什么问题
你可以应用my_color.setRGB(_root.mycolor)你自己设置mycolor吧。



Aw3000

职务:普通成员
等级:1
金币:0.0
发贴:79
#92003/1/10 15:50:02
非常感谢。运行得很好。



Aw3000

职务:普通成员
等级:1
金币:0.0
发贴:79
#102003/1/12 14:50:24
k = 4;
Num = 1;
//--------------------------
_level0.McBOX.onEnterFrame = function() {
for (i=1; i<=k; i++) {
_level0.McBOX["mc"+Num]["shape"+i].onRelease = function() {
TempColor = new color(this);
TempColor.setRGB(_level0.CurColor);
Mycolor = _level0.CurColor;
trace("_level0.mc.shape:"+i);
trace("_level0.CurColor:"+_level0.CurColor);
trace("MyColor:"+MyColor);
};
}
};
//end
我的shape共有4个。为何总是trace出来的总是shape 5,我如何做才能让鼠标点在shape1上trace出shape1,而点在shape 2上时trace出shape 2 ?如此类推。另外,我该怎么做才能把鼠标点在相应的shape上的颜色(_level0.CurColor)储存起来?我想要的结果就是shape1对应一个颜色,shape2对应另一个颜色。恳请帮忙 :)

编辑历史:[这消息被Aw3000编辑过(编辑时间2003-01-12 14:57:22)]


Aw3000

职务:普通成员
等级:1
金币:0.0
发贴:79
#112003/1/13 10:41:36
janlay,s22帮我看一看



s22

职务:版主
等级:4
金币:10.0
发贴:1634
#122003/1/13 13:07:06
k = 4;
Num = 1;
//--------------------------
for (i=1; i<=k; i++) {
_level0.McBOX["mc"+Num]["shape"+i].onRelease = function() {
TempColor = new color(this);
this.num=i;
this.savecolor=_level0.curcolor//保存颜色
TempColor.setRGB(_level0.CurColor);
Mycolor = _level0.CurColor;
trace(this._name+"的编号是"+this.i)
trace(this._name+"的颜色是"+this.color)
trace("_level0.CurColor:"+_level0.CurColor);
trace("MyColor:"+MyColor);
};
}



Aw3000

职务:普通成员
等级:1
金币:0.0
发贴:79
#132003/1/13 14:04:59
trace出的结果:
----------------------------------------------
shape1的编号是
shape1的颜色是
_level0.CurColor:0x000000
MyColor:0x000000
-----------------------------------------------
怎么编号和颜色是空的?

另外,我表达的意思可能有误,很抱歉。我更正一下:
我想通过这个函数完成的功能是,设置shape1,2,3,4~~i 的颜色,同时,把这些颜色值保存起来。然后通过其他的程序纪录到数据库中。这样的话,我就可以把这些纪录通过程序再读进来。所以,我想保存的是这样的结果:shape1对应color1,shape2 对应 color 2,如此类推。

这个很难么?



Aw3000

职务:普通成员
等级:1
金币:0.0
发贴:79
#142003/1/13 15:31:24

相关文件:点这儿打开
附上源文件,各路高手帮我看看。



s22

职务:版主
等级:4
金币:10.0
发贴:1634
#152003/1/13 17:00:06
SORRY~笔误
k = 4;
Num = 1;
//--------------------------
for (i=1; i<=k; i++) {
_level0.McBOX["mc"+Num]["shape"+i].onRelease = function() {
TempColor = new color(this);
this.num=i;
this.savecolor=_level0.curcolor//保存颜色
TempColor.setRGB(_level0.CurColor);
Mycolor = _level0.CurColor;
trace(this._name+"的编号是"+this.num)
trace(this._name+"的颜色是"+this.savecolor)
trace("_level0.CurColor:"+_level0.CurColor);
trace("MyColor:"+MyColor);
};
}