Здраствуйте, я ньюбай во флеше. Если не затруднит, помогите пожалуйста разобраться с проблемой. Есть массив из Мувиклипов и массив из кнопок. Все мувиклипы находяться на сцене в одном слое, массив из кнопок в другом слое. При наведении на один из МувиКлипов (onRollOver), мувиклипу присваеватся функция обработчик, которая инициализирует его, определяет первоначальные кординаты мувиклипа и т.д.,И, так же в этой функции имеются 2 другие функции onPress(изменяет кординаты МувиКлипа) и onRollOut (возвращает первоначальные кординаты Мувиклипа). При активизации ф-ции onPress через onEnterFrame начинает данный мувиклип изменять свои кординаты, а вместе и с ним изменяет кординаты привязаной к нему кнопки. Так вот проблема: активизация onRollOut (за пределами мувиклипа) срабатывает и тогда, когда я навожу на кнопку курсор мыши :( и тогда мувиклип изменяет кординаты на первоначальные, получается на кнопку могу нажать только в таком состоянии, а не в любой точке... код:
| Код | var allmc:Array = [planet_mc, star_mc, car_mc]; btn._x=planet_mc._x;
for (var i = 0; i<allmc.length; i++) { allmc[i].onRollOver = function() { edit(this); }; } var edit:Function = function (MCtmp_mc):Void { var initx:Number = MCtmp_mc._x; var speedx:Number = 0; var distancex:Number = (Stage.width)/2; var mcPressHandler:Function = function ():Void { if (!MCtmp_mc.onEnterFrame) { MCtmp_mc.onEnterFrame = function():Void {
speedx = (distancex-this._x)/50; this._x += speedx; }; } }; var mcRollOutHandler:Function = function ():Void { if (MCtmp_mc.onEnterFrame) { delete MCtmp_mc.onEnterFrame; } this._x = initx;
} MCtmp_mc.onPress = mcPressHandler; MCtmp_mc.onRollOut = MCtmp_mc.onReleaseOutside=mcRollOutHandler; };
|
|