我可能比我能做的更進一步了 因為我三天前剛剛學會了 actionscript。
我正在制作一個簡單的測驗,我手動制作了答案的選擇,而不是使用Adobe Animate提供的組件,因為我可以隨意裝飾外觀。
我制作了名為answer1和answer2的movieclip按鈕,然后為了檢查答案是否被選中,我添加了一個布林值。
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按鈕
e.currentTarget.selected = true;
} else {
e.currentTarget.prevFrame(); //hover/active按鈕
e.currentTarget.selected = false;
}
answer2.selected = false;
answer2.prevFrame()。
} else if (e.currentTarget == answer2) {
if (e.currentTarget.currentFrame == 1 ) {
e.currentTarget.nextFrame(); //hover/active按鈕
e.currentTarget.selected = true;
} else {
e.currentTarget.prevFrame(); //hover/active按鈕
e.currentTarget.selected = false;
}
answer1.selected = false;
answer1.prevFrame()。
}
然后我做了一個按鈕來檢查答案。但直到這里我不知道如何檢查已經被選中的物件
function checkAnswer(e: MouseEvent)。void {
trace(answer1.selected.name)
}
我只想知道如何才能獲得布爾物件的實體名稱,該物件的值為true。
uj5u.com熱心網友回復:
BTW,如果你想讓這些選擇器作為radiogroup作業(一組radiobuttons,同時只允許選擇其中一個),你最好這樣設計:
function clicked(e:MouseEvent)。void: void.
{
///定義一個放射組。
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;
}
//根據 "selected "值調整當前框架。
if (anAnswer.selected)
{
anAnswer.nextFrame()。
}
else; }
{
anAnswer.prevFrame()。
}
}
為什么?首先,即使有2個選項,它仍然比你的短。其次,考慮一下增加2個以上的選項,比如,10個?我的代碼只需要擴展選項的Array,你的代碼將比現在長5倍。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/319500.html
標籤:
上一篇:AS3在可見的舞臺區域限制船舶
