我正在尝试使用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);
}
如何以这种方式在舞台上放置多个按钮?