#apache-flex #flash #actionscript-3 #flex3 #flex4
#apache-flex #flash #actionscript-3 #flex3 #flex4
Вопрос:
У меня есть небольшой холст, и я должен показать границы вокруг них, я сделал это с помощью rollover и rollout evenets (на этих холстах хранятся изображения продуктов), здесь перенос и развертывание работают отлично, но когда пользователь нажимает на какой-то холст, он должен быть выбран, это означает, что вокруг него отображается граница, а остальной холст должен работать в обычном режиме. но когда я выбираю другой холст, ранее выбранный холст должен быть отменен, а новый выбранный холст получает выделение,
но проблема, которая возникает из-за события развертывания, которое применяется к canvas, при щелчке холст выбирается, но при развертывании он отменяет выбор canvas, я даже удалил список развертывания при щелчке по canvas, но в этом случае выбранный холст не будет отменен, когда будет нажат другой холст
can.addEventListener(MouseEvent.ROLL_OVER,onRollOverThumb);
can.addEventListener(MouseEvent.ROLL_OUT,onRollOutThumb);
//can.addEventListener(MouseEvent.CLICK,onRollOverThumb);
private function onRollOverThumb(event:MouseEvent):void
{
event.target.setStyle('borderColor','0x000000');
event.target.setStyle('borderThickness','3');
event.target.setStyle('borderStyle','solid');
}
private function onRollOutThumb(event:MouseEvent):void
{
event.target.setStyle('borderColor','0xCCCCCC');
event.target.setStyle('borderThickness','1');
event.target.setStyle('borderStyle','solid');
}
я надеюсь, что в этом что-то понятно, никто не работал над этим, пожалуйста, ответьте
Заранее спасибо
Анкур Шарма
Ответ №1:
Как насчет реализации переменной «flag», которая устанавливается в true
значение при щелчке. Затем, когда произойдет откат, проверьте, установлен ли флаг true или false. Если true, ничего не делайте, если false, удалите / измените границу.
Комментарии:
1. рит, я уже использовал, но попробую еще раз, спасибо
Ответ №2:
private function onRollOverThumb(event:MouseEvent):void
{
if(event.type=='click')
{
for(var j:int=0;j<viewparent.numChildren;j )
{
viewparent.getChildAt(j).name="false";
}
event.currentTarget.name="true";
for(var i:int=0;i<viewparent.numChildren;i )
{
if(viewparent.getChildAt(i).name=="true")
{
Canvas(viewparent.getChildAt(i)).setStyle('borderColor','0x000000');
Canvas(viewparent.getChildAt(i)).setStyle('borderThickness','3');
Canvas(viewparent.getChildAt(i)).setStyle('borderStyle','solid');
}
else
{
Canvas(viewparent.getChildAt(i)).setStyle('borderColor','0xCCCCCC');
Canvas(viewparent.getChildAt(i)).setStyle('borderThickness','1');
Canvas(viewparent.getChildAt(i)).setStyle('borderStyle','solid');
}
}
}
else
{
event.currentTarget.setStyle('borderColor','0x000000');
event.currentTarget.setStyle('borderThickness','3');
event.currentTarget.setStyle('borderStyle','solid');
}
}
private function onRollOutThumb(event:MouseEvent):void
{
if(event.currentTarget.name=="false")
{
event.currentTarget.setStyle('borderColor','0xCCCCCC');
event.currentTarget.setStyle('borderThickness','1');
event.currentTarget.setStyle('borderStyle','solid');
}
}
я изменил свой собственный код, добавил одно свойство name к холстам
can.name="false"
и теперь это работает,
никто не может мне сказать, как поместить некоторые выделения и отменить выбор (своего рода эффект затухания) на границу, когда черное выделение удаляется, оно должно быть удалено каким-либо образом затухания, можем ли мы применить эффект затухания к границе?