Показать сообщение отдельно
Старый 28.03.2017, 01:25
Sempal вне форума Посмотреть профиль Отправить личное сообщение для Sempal Найти все сообщения от Sempal
  № 1  
Ответить с цитированием
Sempal

Регистрация: Mar 2017
Сообщений: 1
По умолчанию Проблема с кнопкой actionscript

При создании нескольких кнопок расположенных рядом друг с другом и при наведение мышкой с 1 на 2 то иногда получается что 2 кнопки активны, как исправить?

Код AS3:
package {
import flash.filters.*;
import flash.geom.Matrix;
import flash.display.*;
import flash.events.*;
import flash.net.*;
 
public class Shadow extends Sprite {
private var image:Loader;
private var miniImage:Loader;
 
public function Shadow(label:String) {
image=new Loader();
image.load(new URLRequest(label));
image.alpha=0.5;
addChild(image);
 
image.addEventListener(MouseEvent.ROLL_OVER,onOver);
image.addEventListener(MouseEvent.ROLL_OUT,onOut);
}
private function onOut(e:MouseEvent):void {
image.removeEventListener(MouseEvent.MOUSE_MOVE,onMove);
lastState=false;
 
}
private function onOver(e:MouseEvent):void {
image.addEventListener(MouseEvent.MOUSE_MOVE,onMove);
}
private var lastState:Boolean=false;
 
private function onMove(e:MouseEvent):void {
 
 
if (mouseHits(image)) {
if (! lastState) {
lastState=true;
buttonMode=true;
image.alpha=1;
}
} else {
if (lastState) {
lastState=false;
image.filters=[];
buttonMode=false;
image.alpha=0.5;
 
 
}
}
}
 
public function mouseHits(target.sisplayObject):Boolean {
 
if (target == null || target.stage == null) {
return false;
}
 
if (target.hitTestPoint(target.stage.mouseX,target.stage.mouseY)) {
 
var aMatrix:Matrix=new Matrix();
aMatrix.translate(- target.mouseX,- target.mouseY);
 
var bd:BitmapData=new BitmapData(1,1,true,0x00000000);
bd.draw(target,aMatrix);
 
var alpha:uint=bd.getPixel32(0,0) >> 24 & 0xFF;
 
bd.dispose();
 
return alpha > 0x0F;
}
return false;
}
 
}
}


Последний раз редактировалось Wolsh; 28.03.2017 в 02:16.