随机加载按钮和文本 - 游戏[AS3]

时间:2013-01-28 11:50:12

标签: actionscript-3 flash button random

我正在尝试使用AS3在Flash中创建游戏。这是一个学生游戏,它应该有助于识别布线材料。所以根据问题,你应该选择正确的图像,等等。它应该像这样工作:

我应该随机地,无需重复,将图像加载到网格6x4中 - 在我的情况下它将是按钮,因为我需要根据问题点击右图像然后单击下一个按钮 - 此按钮应生成新的问题和图像。按钮存储在库中。

我不确定它是否足够清楚..最好的方法是什么?

到目前为止,我手动将按钮添加到网格并创建条件来检查我的选择,但它应该随机动态地工作。非常感谢你的想法!

到目前为止我做了什么:

var loader:URLLoader = new URLLoader(new URLRequest("questions_easy.txt"));
loader.addEventListener(Event.COMPLETE, completeHandler);

loader.dataFormat=URLLoaderDataFormat.VARIABLES

function completeHandler(event:Event):void {
var loadedText:URLLoader = URLLoader(event.target);
myText_txt.text = loadedText.data.question1;
}

var bpic1:Boolean = false;
var bpic2:Boolean = false;
var bpic3:Boolean = false;
var bpic4:Boolean = false;
btn_right.visible=false;
btn_wrong.visible=false;
btn_check.enabled=true;
pic1.doubleClickEnabled=true;
pic2.doubleClickEnabled=true;
pic3.doubleClickEnabled=true;
pic4.doubleClickEnabled=true;
pic1.addEventListener(MouseEvent.CLICK, fpic1);
pic1.addEventListener(MouseEvent.DOUBLE_CLICK, fpic1d);
pic2.addEventListener(MouseEvent.CLICK, fpic2);
pic2.addEventListener(MouseEvent.DOUBLE_CLICK, fpic2d);
pic3.addEventListener(MouseEvent.CLICK, fpic3);
pic3.addEventListener(MouseEvent.DOUBLE_CLICK, fpic3d);
pic4.addEventListener(MouseEvent.CLICK, fpic4);
pic4.addEventListener(MouseEvent.DOUBLE_CLICK, fpic4d);

var defaultUpState1:DisplayObject = pic1.upState;
var downUpState1:DisplayObject = pic1.downState;

var defaultUpState2:DisplayObject = pic2.upState;
var downUpState2:DisplayObject = pic2.downState;

var defaultUpState3:DisplayObject = pic3.upState;
var downUpState3:DisplayObject = pic3.downState;

var defaultUpState4:DisplayObject = pic4.upState;
var downUpState4:DisplayObject = pic4.downState;

function fpic1(event:MouseEvent):void
{
    bpic1=true;
    pic1.upState=downUpState1;
}

function fpic1d(event:MouseEvent):void
{
    bpic1=false;
    pic1.upState=defaultUpState1;

}

function fpic2(event:MouseEvent):void
{
    bpic2=true;
    pic2.upState=downUpState2;
}

function fpic2d(event:MouseEvent):void
{
    bpic2=false;
    pic2.upState=defaultUpState2;
}


function fpic3(event:MouseEvent):void
{
    bpic3=true;
    pic3.upState=downUpState3;
}

function fpic3d(event:MouseEvent):void
{
    bpic3=false;
    pic3.upState=defaultUpState3;
}


function fpic4(event:MouseEvent):void
{
    bpic4=true;
    pic4.upState=downUpState4;
}

function fpic4d(event:MouseEvent):void
{
    bpic4=false;
    pic4.upState=defaultUpState4;
}

btn_check.addEventListener(MouseEvent.CLICK, check);
function check(event:Event):void {

    if (bpic1==true && bpic2==true && bpic3==true && bpic4==true) 
    {
        btn_right.visible=true;
        btn_check.enabled=false;
    }
    else btn_wrong.visible=true;
    if (btn_right.visible==true) btn_wrong.visible=false;

    }

它做了什么:所以我只是手动将4个按钮放到舞台上,添加上下状态..当我点击图像时它被选中,当我双击时,选择消失了。在我选择正确的图像后,我可以点击“检查”按钮,如果没关系,你会看到“正确”的图像,我应该转移到另一个问题。在这段代码中是从外部.txt文件加载的问题,但这不是必需的..因为我是AS3的新手,所以有点复杂。

这个工作“很好”,但正如我所说,按钮应该随机动态加载..

好吧所以我尝试了一些东西,我为AS导出了一个按钮..基类:flash.display.SimpleButton和Class:Pictures ..但是不可能为同一个clas分配另一个按钮..

我写了这个,把按钮放在舞台上:for (var i = 0; i <=7; i++) { var newButton:Pictures = new Pictures(); newButton.x = 195; newButton.y = 400+i*13; this.addChild(newButton); } 如何以这种方式在舞台上放置多个按钮?

0 个答案:

没有答案