![]() |
|
||||||||||
|
|||||
|
собственно, чтоб не присваивать кнопке каждый раз однотипные функции попыталась запихнуть их в массив, но увы ничего не происходит
for(var i:Number = 1;i<8;i++){ var dskBt:MovieClip = attachMovie("dsk"+i, "dskBt"+i, i); dskBt.onRollOver=function(){ dskBt._xscale=105; dskBt._yscale=105; dskBt._x=dskBt._x-m; dskBt._y=dskBt._y-m; } dskBt.onRollOut=function(){ dskBt._xscale=100; dskBt._yscale=100; dskBt._x=dskBt._x+m; dskBt._y=dskBt._y+m; } } |
|
|||||
|
это и не удевительно.
Так как dskBt:MovieClip у вас статический относительно роота, вместимое выконечно меняете при иттерациях. Вообще м for(var i:Number = 1;i<8;i++) { _root['dskBt'+i]:MovieClip = attachMovie("dsk"+i, "dskBt"+i, i); _root['dskBt'+i].onRollOver=function() { _root['dskBt'+i]._xscale=105; _root['dskBt'+i]._yscale=105; _root['dskBt'+i]._x=_root['dskBt'+i]._x-m; _root['dskBt'+i]._y=_root['dskBt'+i]._y-m; } _root['dskBt'+i].onRollOut=function() { _root['dskBt'+i]._xscale=100; _root['dskBt'+i]._yscale=100; _root['dskBt'+i]._x=_root['dskBt'+i]._x+m; _root['dskBt'+i]._y=_root['dskBt'+i]._y+m; } }
__________________
return this... |
|
|||||
for(var i:Number = 1;i<8;i++){ var dskBt:MovieClip = attachMovie("dsk", "dskBt"+i, i); dskBt.onRollOver=function(){ this._xscale=105; this._yscale=105; this._x=this._x-m; this._y=this._y-m; } dskBt.onRollOut=function(){ this._xscale=100; this._yscale=100; this._x=this._x+m; this._y=this._y+m; } } |
|
|||||
|
AlexCooper спасибо, но не помогает, пишет синтаксическую ошибку
![]() amexdesign ошибок нет , но не работает.. ндя туплю) |
|
|||||
|
Тогда так
for(var i:Number = 1;i<8;i++) { _root.attachMovie("dsk"+i, "dskBt"+i, i); _root['dskBt'+i].onRollOver=function() { this._xscale=105; this._yscale=105; this._x=this._x-m; this._y=this._y-m; } _root['dskBt'+i].onRollOut=function() { this._xscale=100; this._yscale=100; this._x=this._x+m; this._y=this._y+m; } }
__________________
return this... |
|
|||||
|
в общем это навигатор, который двигается по отношению к мышке влево\вправо, а обработчик для вложенных клипов, disk(основной двигающийся, в него вложены dsk, которые увеличиваются по наведению)
var m=5; // левый отступ var l=100; // правый отступ var p=500; function left(){ disk._x-=2; } function right(){ disk._x+=2; } onEnterFrame = function(){ if((_root._xmouse<l)&&(disk._x>-50)) {left();} else if((_root._xmouse>p)&&(disk._x<50)) {right();} for(var i:Number = 1;i<8;i++) { _root.attachMovie("dsk"+i, "dskBt"+i, i); _root.disk['dskBt'+i].onRollOver=function() { this._xscale=105; this._yscale=105; this._x=this._x-m; this._y=this._y-m; } _root.disk['dskBt'+i].onRollOut=function() { this._xscale=100; this._yscale=100; this._x=this._x+m; this._y=this._y+m; } } } ![]() |
|
|||||
for(var i:Number = 0;i<8;i++){ // на _root должен лежать пустой MovieClip с instanzname "disk" var btn = _root.disk.attachMovie("dsk", "dsk"+i, i); btn._x = 0 btn._y = 0 btn._x += (i%8)*(btn._width +5); /*btn._x = 0 // активируйте этот btn._y = 0 // код, если кнопки btn._y += Math.floor(i%8)*(btn._height+5);*/ //распологаются вертикально btn.onRollOver=function(){ this._xscale=105; this._yscale=105; //this._x=this._x-m; //this._y=this._y-m; } btn.onRollOut=function(){ this._xscale=100; this._yscale=100; //this._x=this._x+m; //this._y=this._y+m; } } |
|
|||||
|
Цитата:
На самом деле всё просто, пишите, помогу. Только желательно с исходниками. В голове компиляция похуже, а самому объекты делать так не хочеться.
__________________
return this... |
|
|||||
|
Спасибо) поняла свою ошибку, у меня не были линки прописаны для клипов)) функция аттач создаёт просто экземпляр класса?))
__________________
cdc7600.livejournal.com |
|
|||||
|
У меня похожая проблема. Имеется два мувика на сцене чтобы не писать сценарий к каждому я пропсываю усё через for(...), но ничего не пашет.
Когда сценарий прописан только для одного мувика всё работает. В чем тут может быть проблема? вот так не пашет: var blr:Array = new Array(false,false); var rot_flag:Array = new Array(true,true); //------------------------------------------------------------------------------------- for(var i=0;i<2;i++){ _root["btn"+i].onEnterFrame = function(){ if(rot_flag[i]==true){ _root["btn"+i]._rotation+=2; if(_root["btn"+i]._rotation==8){ rot_flag[i] = false; } }else{ _root["btn"+i]._rotation-=2; if(_root["btn"+i]._rotation==(-8)){ rot_flag[i] = true; } } if(blr[i]==false){ bluref = new flash.filters.BlurFilter(5, 5, 3); _root["btn"+i].filters = [bluref]; }else{ bluref = new flash.filters.BlurFilter(1, 1, 1); _root["btn"+i].filters = [bluref]; } } //------------------------------------------------------------------------------------- _root["btn"+i].onRollOver = function(){ blr[i] = true; } //------------------------------------------------------------------------------------- _root["btn"+i].onRollOut = function(){ blr[i] = false; } //------------------------------------------------------------------------------------- _root["btn"+i].onPress = function(){ trace("Hello"); } } а вот так пашет: var blr=false; var rot_flag = true; //------------------------------------------------------------------------------------- btn0.onEnterFrame = function(){ if(rot_flag==true){ btn0._rotation+=2; if(btn0._rotation==8){ rot_flag = false; } }else{ btn0._rotation-=2; if(btn0._rotation==(-8)){ rot_flag = true; } } if(blr==false){ bluref = new flash.filters.BlurFilter(5, 5, 3); btn0.filters = [bluref]; }else{ bluref = new flash.filters.BlurFilter(1, 1, 1); btn0.filters = [bluref]; } } //------------------------------------------------------------------------------------- btn0.onRollOver = function(){ blr = true; } //------------------------------------------------------------------------------------- btn0.onRollOut = function(){ blr = false; } //------------------------------------------------------------------------------------- btn0.onPress = function(){ trace("Hello"); }
__________________
Ошибок не делает лишь тот, кто ничего не делает! |
![]() |
![]() |
Часовой пояс GMT +4, время: 19:37. |
|
|
« Предыдущая тема | Следующая тема » |
|
|