这里有一个小样机我做(道歉,如果这是一个有点乱)。它要求从1
每个门开始将有一个MouseEvent.CLICK
事件侦听器将带你到所需的帧在时间轴上5个空帧。在这种情况下,我将每个门的引导线直接送到奖架上。但是,你总是可以让每个门导致另一组的门,然后让这些门导致的奖品等等,等等
注意,变量只是用于创建按钮,并且不需要。您可以将点击事件侦听器放置在您自己的动画片段上,并获得相同的结果。 (你只需要在代码调整实例名称)
希望这有助于!
Frame1中的代码:
import flash.display.Sprite;
import flash.text.TextField;
import flash.events.MouseEvent;
import flash.events.Event;
stop();
var rec:Sprite = new Sprite();
rec.graphics.beginFill(0x00FF00, 1);
rec.graphics.drawRect(-50, -50, 100, 100);
addChild(rec);
rec.x=stage.stageWidth/2;
rec.y=stage.stageHeight/2;
var text1:TextField=new TextField();
text1.wordWrap=true;
text1.text="ENTER THE CASTLE";
addChild(text1);
text1.x=rec.x;
text1.y=rec.y;
rec.addEventListener(MouseEvent.CLICK,recC);
function recC (e:Event):void{
//Remove Child not needed if you symbols are placed manually on stage
removeChild(rec);
removeChild(text1);
rec.removeEventListener(MouseEvent.CLICK,recC)
nextFrame();
}
式2代码:
import flash.display.Sprite;
import flash.text.TextField;
import flash.events.MouseEvent;
import flash.events.Event;
stop();
var rec2: Sprite = new Sprite();
rec2.graphics.beginFill(0x0066CC, 1);
rec2.graphics.drawRect(-50, -50, 100, 100);
addChild(rec2);
rec2.x = stage.stageWidth/5;
rec2.y = stage.stageHeight/2;
var rec3: Sprite = new Sprite();
rec3.graphics.beginFill(0x66FF99, 1);
rec3.graphics.drawRect(-50, -50, 100, 100);
addChild(rec3);
rec3.x = stage.stageWidth/2;
rec3.y = stage.stageHeight/2;
var rec4: Sprite = new Sprite();
rec4.graphics.beginFill(0xFF3333, 1);
rec4.graphics.drawRect(-50, -50, 100, 100);
addChild(rec4);
rec4.x = stage.stageWidth/1.2;
rec4.y = stage.stageHeight/2;
var text2: TextField = new TextField();
addChild(text2);
text2.text = "Pick a Door Knight!";
text2.x = stage.stageWidth/2;
text2.y = stage.stageHeight/4;
//Each door has an event listener for a click
//Once clicked, the door will take you to the appropriate ending
rec2.addEventListener(MouseEvent.CLICK, rec2C);
function rec2C(e: Event): void {
removeChild(rec2);
removeChild(rec3);
removeChild(rec4);
removeChild(text2);
rec2.removeEventListener(MouseEvent.CLICK, rec2C)
rec3.removeEventListener(MouseEvent.CLICK, rec3C)
rec4.removeEventListener(MouseEvent.CLICK, rec4C)
gotoAndStop(3)//This is the frame for Blue
}
rec3.addEventListener(MouseEvent.CLICK, rec3C);
function rec3C(e: Event): void {
removeChild(rec2);
removeChild(rec3);
removeChild(rec4);
removeChild(text2);
rec2.removeEventListener(MouseEvent.CLICK, rec2C)
rec3.removeEventListener(MouseEvent.CLICK, rec3C)
rec4.removeEventListener(MouseEvent.CLICK, rec4C)
gotoAndStop(4)//This is the frame for Green
}
rec4.addEventListener(MouseEvent.CLICK, rec4C);
function rec4C(e: Event): void {
removeChild(rec2);
removeChild(rec3);
removeChild(rec4);
removeChild(text2);
rec2.removeEventListener(MouseEvent.CLICK, rec2C)
rec3.removeEventListener(MouseEvent.CLICK, rec3C)
rec4.removeEventListener(MouseEvent.CLICK, rec4C)
gotoAndStop(5)//This is the frame for Red
}
3帧的代码:
var text3: TextField = new TextField();
addChild(text3);
text3.wordWrap=true;
text3.text = "You won the blue prize!";
text3.x = stage.stageWidth/2;
text3.y = stage.stageHeight/2.7;
addChild(rec2);
rec2.x=stage.stageWidth/2;
rec2.y=stage.stageWidth/2;
帧4的代码:
var text4: TextField = new TextField();
addChild(text4);
text4.wordWrap=true;
text4.text = "You won the green prize!";
text4.x = stage.stageWidth/2;
text4.y = stage.stageHeight/2.7;
addChild(rec3);
rec3.x=stage.stageWidth/2;
rec3.y=stage.stageWidth/2;
第5帧代码:
var text5: TextField = new TextField();
addChild(text5);
text5.wordWrap=true;
text5.text = "You won the red prize!";
text5.x = stage.stageWidth/2;
text5.y = stage.stageHeight/2.7;
addChild(rec4);
rec4.x=stage.stageWidth/2;
rec4.y=stage.stageWidth/2;
将元数据存储在声明为“public var”的某个对象中,以便跨帧保留,然后一旦显示奖励时查询存储的内容并选择显示哪个帧。 – Vesper