Цитата:
|
Сообщение от wvxvw
 Код:
public var MC:MovieClip;
А зачем это вообще нужно? Если класс уже наследуется от МувиКлипа не проще ли тот клип к которому линкуется класс и использовать? А то так поди знай когда вы определяете что это за клип (MC), и когда определяете в нем какие-то параметры...
ЗЫ. ща еще умные люди понабегут %) по поводу синтаксиса ругаться будут %)
прописными - статические переменные, с прописной - имена классов.
|
К сожалению не получается без этой ссылки обращаться к прилинкованному мувику. Т.е. Мувик без проблем использует переменные и методы класса, а вот класс к переменным мувика доступ не может получить - может руки кудрявые.
Проблему на самом деле обошел, но не решил.
А по поводу синтаксиса - а что, если название класса с большой буквы начинается, то он как-то по другому воспринимается флешей?
Стаическая переменная с большой буквы - тоже не понял в чем проблема.
В PHP я знаю, что все, что относится к OOП - пишется с большой буквы - это для компилятора надо. Во флеше так же?
Код мувика (в первом и единственном кадре написан)

Код:
stop();
selec._width = lwidth;
sel_txt._width = lwidth;
sel_txt.text = curItemText;//curItemText;
var sel_pressed = false;
var sy = selec._y;
var sx = selec._x;
var sw = lwidth;//selec._width;
var sh = selec._height;
var d_sel = 0;
var count = countItems;
var over;
var main_mc = createEmptyMovieClip("main_mc",1);
var sc_mc = createEmptyMovieClip("sc_mc",2);
unvis_all = function ()
{
var i = 0;
while (i < arrVals.length)
{
removeMovieClip(main_mc["sel" + i]);
i++;
sel_pressed = false;
}
main_mc._x = 0;
main_mc._y = 0;
removeMovieClip(sc_mc["scroll"]);
removeMovieClip(sc_mc["_scroll_bar"]);
removeMovieClip(sc_mc["_bg_scroll"]);
clearInterval(un_id);
}
roll = function (n, k)
{
n.onRollOver = function ()
{
setProperty(n._bg, _alpha, 0);
}
n.onRollOut = function ()
{
setProperty(n._bg, _alpha, 100);
}
n.onPress = function ()
{
selectedIndex = k;
sel_txt.text = arrVals[k];
unvis_all();
};
};
selec.onPress = function ()
{
if(!sel_pressed) {
posy = sy + sh;
posx = sx;
ListW = lwidth;
if(arrVals.length > count) {
sc_mc.attachMovie("scroll", "scroll", 1003, {_x: (sx), _y: (sy + sh)});
ListW = lwidth - sc_mc["scroll"]._width;
scx = sx + ListW ;// sc_mc["scroll"]._width;
}
var i = 0;
while (i < arrVals.length)
{
var cur_mc:MovieClip = main_mc.attachMovie("sel", "sel" + i, 200 + i, {_x: posx, _y: posy});
cur_mc._txt.autoSize = true;
cur_mc._txt.text = arrVals[i];
cur_mc._bg._width = ListW;
cur_mc._bgAlt._width = ListW;
cur_mc._bg._height = cur_mc._height;
cur_mc._bgAlt._height = cur_mc._height;
posy = posy + cur_mc._txt._height;
roll(cur_mc, i);
i++;
}
msk_mc._width = main_mc["sel0"]._width+5;
msk_mc._height = ((main_mc["sel0"]._txt._height) * count);
msk_mc._x = sx;
msk_mc._y = sy + sh;
main_mc.setMask(msk_mc);
if(arrVals.length > count)
{
dy = (main_mc["sel0"]._txt._height) * count - sc_mc["scroll"]._onpr._height;
sc_mc["scroll"].onPress = function() {
startDrag(this,false,scx+0.5,sy + sh,scx+0.5,(sy + sh + dy));
s = true;
}
sc_mc["scroll"]._x = scx;
sc_mc["scroll"].onRelease = function(){
this.stopDrag();
s = false;
}
sc_mc["scroll"].onReleaseOutside = function(){
this.stopDrag();
s = false;
this._onpr._reds._alpha = 0;
}
sc_mc["scroll"].onRollOver = function ()
{
this._onpr._reds._alpha = 100;
}
sc_mc["scroll"].onRollOut = function ()
{
this._onpr._reds._alpha = 0;
}
sc0 = Math.floor(sc_mc["scroll"]._y);
sc100 = Math.floor((sy + sh + dy) - sc_mc["scroll"]._y);
mc0 = 0;
mc100 = main_mc["sel0"]._txt._height * (arrVals.length - count);
moveId = setInterval(m=function()
{
per = Math.floor((Math.floor(sc_mc["scroll"]._y) - sc0) * 100 / sc100);
main_mc._y = - per * mc100 / 100;
},10);
sc_mc.attachMovie("_scroll_bar", "_scroll_bar", 1002, {_x: (scx+5), _y: (sy + sh*5/4), _height:(sy + sh*1/4 + dy)});
sc_mc.attachMovie("_bg", "_bg_scroll", 1001, {_x:(scx), _y:(msk_mc._y), _width:(10), _height:(msk_mc._height)});
}
sel_pressed = true;
}else{
unvis_all();
sel_pressed = false;
}
}
var mouseListener:Object = new Object();
mouseListener.onMouseDown = function() {
if (main_mc._ymouse < (sy-d_sel+Math.abs(main_mc._y)) || main_mc._ymouse > (sy+main_mc["sel0"]._height*count + d_sel + sh + Math.abs(main_mc._y)) || main_mc._xmouse < (sx-d_sel) || main_mc._xmouse > (sx + sw + d_sel+sc_mc["scroll"]._width))
{
unvis_all();
}
}
Mouse.addListener(mouseListener);
Код флешки. Тут значит Loado.comboBox - это и есть тот самый мувик.

Код:
Loado._x = 370;
Loado._y = 275;
Loado._visible = true;
Loado.comboBox.setmc = Loado.comboBox;
for(var lNode:XMLNode = list.firstChild.firstChild; lNode != null;lNode = lNode.nextSibling)
{
Loado.comboBox.addItem(lNode.attributes.order_name,lNode.attributes.order_id);
}
///Loado.comboBox.selectedIndex = 1;
//_global.Message(Loado.comboBox.curItemText,'','');
Loado._ok._f = funct;
Loado._close.onRelease = function ()
{
this._parent._visible = false;
}
Loado._ok.onRelease = function ()
{
_global.id = Loado.comboBox.value;
this._f();
this._parent._visible = false;
}
Loado._cancel.onRelease = function ()
{
this._parent._visible = false;
}
Loado._shapka.onPress = function ()
{
Loado.startDrag(false,1,15,744,700-Loado._height);
}
Loado._shapka.onRelease = Loado._shapka.onReleaseOutside = function ()
{
Loado.stopDrag();
}
Loado._shapka.useHandCursor = false;