我可能比我所能做的更進一步,因為我 3 天前剛剛學習了 actionscript。
我正在做一個簡單的測驗,我手動選擇了答案,而不是使用 Adob??e Animate 提供的組件。因為我可以隨心所欲地裝飾外觀。
我制作了名為 answer1 和 answer2 的影片剪輯按鈕,然后為了檢查是否選擇了答案,我添加了一個布林值。
e.currentTarget.selected = true;
e.currentTarget.selected = false;
這是我的答案按鈕代碼
function clicked(e:MouseEvent): void {
if (e.currentTarget == answer1) {
if (e.currentTarget.currentFrame == 1 ) {
e.currentTarget.nextFrame(); // hover/active button
e.currentTarget.selected = true;
} else {
e.currentTarget.prevFrame(); // hover/active button
e.currentTarget.selected = false;
}
answer2.selected = false;
answer2.prevFrame();
} else if (e.currentTarget == answer2) {
if (e.currentTarget.currentFrame == 1 ) {
e.currentTarget.nextFrame(); // hover/active button
e.currentTarget.selected = true;
} else {
e.currentTarget.prevFrame(); // hover/active button
e.currentTarget.selected = false;
}
answer1.selected = false;
answer1.prevFrame();
}
}
然后我做了一個按鈕來檢查答案。但直到這里我不知道如何檢查已選擇的物件
function checkAnswer(e: MouseEvent): void {
trace(answer1.selected.name)
}
我只想如何獲取值為 true 的布爾物件的實體名稱。
uj5u.com熱心網友回復:
順便說一句,如果您打算將這些選擇器用作單選組(一組單選按鈕,只允許同時選擇其中一個),您最好這樣設計:
function clicked(e:MouseEvent): void
{
// Define a radiogroup.
var aGroup:Array = [answer1, answer2];
// Iterate over the group elements and process the click.
for each (var anAnswer:MovieClip in aGroup)
{
if (anAnswer == e.currentTarget)
{
anAnswer.selected = !anAnswer.selected;
}
else
{
anAnswer.selected = false;
}
// Adjust the current frame according to "selected" value.
if (anAnswer.selected)
{
anAnswer.nextFrame();
}
else
{
anAnswer.prevFrame();
}
}
}
為什么?首先,即使有 2 個選項,它仍然比你的短。其次,考慮添加 2 個以上的選項,比如 10 個?我的代碼只需要擴展選項陣列,您的代碼將比現在長 5 倍。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/417760.html
標籤:
