Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > ActionScript 3 > Определение элемента, по которому произошёл эвент


Автор: JAYBE 4.4.2012, 10:08
Добрый день!
Реалзиую опросник на флеше.
Есть 3 варианта ответа и коррекнтый номер.
создал 3 поля quiz_1, quiz_2 и quiz_3. 
Теперь делаю что когда проиходит клик по одному из них, то необходимо опр-ть, равен ли текущий объект номеру правильного варианта овтета.
Подскажите как правильно сдлеать? Я очень новичок в этом.

function selQuiz(event:MouseEvent):void
{
    // правильный вариант овтета - 2 (correct = 2), т.е. надо сказать что если this.name!=quiz_+correct , тогда неправильно.
    
}

quiz_1.addEventListener(MouseEvent.CLICK, selQuiz);

Выше првиедённый код естесно не работает.

Автор: BiMaWa 4.4.2012, 10:21
event.target - должен вернуть ссылку на экземпляр, на котором было событие.

Автор: JAYBE 4.4.2012, 10:28
Да, уже поулчилось
Код

var myXML:XML = new XML();
var XML_URL:String = "questions.xml";
var myXMLURL:URLRequest = new URLRequest(XML_URL);
var myLoader:URLLoader = new URLLoader(myXMLURL); 

 myLoader.addEventListener("complete", xmlLoaded); 
 var correct:int
function xmlLoaded(event:Event):void 

var xml:XML = XML(myLoader.data); 
quiz_1.text = xml.question.length()
for (var k:int=0;k<xml.question.length(); k++){
    quiz_1.text = xml.question[k].answer[0]
    quiz_2.text = xml.question[k].answer[1]
    quiz_3.text = xml.question[k].answer[2]
    correct  = xml.question[k].correct
}
this.stop();
}

function selQuiz(event:MouseEvent):void
{
    if (event.target.name == "quiz_" + correct.toString()) {
        trace("Верно!!")
    }
    trace(event.target.name)
}

addEventListener(MouseEvent.CLICK, selQuiz);

Если есть более профессиональынй варинт - ожидаю http://forum.vingrad.ru/forum/topic-349775.html#
Не посоветуете лит-ру?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)