te podría ayudar pero realmente no se como lo tienes planteado por ejemplo cuando pones los eventos de gotoAndStop dentro del switch , ad donde te diriges exactamente a una animación de dado?..
por otro lado si quieres utilizar el ejemplo que te e dado te puedo añadir una función que se ejecute cada ves que el dado se detenga devolviendo el valor real del dado que seria del 1-6;
primero renombra la vinculación del dado y coloca
mcDado
el .as
Dado Código PHP:
package {
import flash.display.MovieClip;
import flash.events.MouseEvent;
import flash.events.TimerEvent
import flash.utils.Timer
import flash.events.Event
public dynamic class Dado extends MovieClip {
public var n:int=0;
public var keyFrames:Array=new Array("dado1","dado2","dado3","dado4","dado5","dado6");
public var mcDado:MovieClip;
public var MinSegundos:Number=3;//este es el tiempo minimo de animacion del dado el tiempo maximo dependera de los frames que tenga la animacion
public var timerStop:Timer;
public var functionEnd:Function=function(n:int):void{};
public var functionEndParam:Array=new Array();
public function Dado(func:Function=null,param:Array=null):void {
functionEnd=(func!=null)?func:functionEnd;
functionEndParam=(param)?param:functionEndParam;
mcDado=new miMcDado();//este Movie deve estar vinculado en la biblioteca y tienes que tener los keyFrames y guales a los de arriba
addChild(mcDado);
timerStop=new Timer(1000*MinSegundos,1);
timerStop.addEventListener(TimerEvent.TIMER,detectStopDado);
mcDado.stop();
}
public function start():void {
initTimerStopDado();
}
public function addFunction(func:Function):void {
functionEnd=func;
}
public function addFunctionParam(param:Array):void {
functionEndParam=param;
}
public function getValor():int {
return n+1;
}
private function initTimerStopDado() {
n=random();
mcDado.play();
timerStop.reset();
timerStop.start();
}
private function detectStopDado(event:TimerEvent) {
mcDado.addEventListener(Event.ENTER_FRAME,StopDado);
}
private function StopDado(event:Event) {
if (mcDado.currentFrameLabel==keyFrames[n]) {
mcDado.stop();
mcDado.removeEventListener(Event.ENTER_FRAME,StopDado);
var paramTemp:Array=functionEndParam.slice()
paramTemp.unshift(getValor());
functionEnd.apply(functionEnd,paramTemp)
}
}
private function random():int {
return (Math.round(Math.random()*5)==Math.round(Math.random()*5))?Math.round(Math.random()*5):Math.round(Math.random()*5);
}
}
}
y estos son uno ejemplos de como aplicarlo
Código PHP:
import Dado
var dado=new Dado(resultado,['Hola Mundo']);
addChild(dado);
dado.x=(stage.stageWidth)/2
dado.y=(stage.stageHeight)/2
dado.start()
function resultado(n:int,param:String):void{
trace("El resutado del dado es:"+n+" \n El valor del parametro es:"+param)
}
con dos dados
Código PHP:
import Dado
var dado=new Dado(resultado,['Hola Mundo']);
addChild(dado);
dado.x=100
dado.y=100
dado.start()
var dado2=new Dado(resultado,['Hola Mundo']);
addChild(dado2);
dado2.x=200
dado2.y=100
dado2.start()
function resultado(n:int,param:String):void{
trace("El resutado del dado es:"+n+" \n El valor del parametro es:"+param)
}
si quieres hacer click sobre un dado
Código PHP:
import Dado
var dado=new Dado(resultadoDado1,['soy el paramatro1']);
addChild(dado);
dado.x=100
dado.y=100
dado.addEventListener(MouseEvent.CLICK,mouseClik)
function mouseClik(event:MouseEvent):void{
dado.start()
}
function resultadoDado1(n:int,param):void{
trace("El resutado del dado1 es:"+n+"\nEsto es el valor del Parametro actual:"+param)
}
si quieres que dada dado ejecute una funcion distinta
Código PHP:
import Dado
var dado=new Dado(resultadoDado1);
addChild(dado);
dado.x=100
dado.y=100
var dado2=new Dado(resultadoDado2);
addChild(dado2);
dado2.x=200
dado2.y=100
addEventListener(MouseEvent.CLICK,mouseClik)
function mouseClik(event:MouseEvent):void{
dado.start()
dado2.start()
}
function resultadoDado1(n:int):void{
trace("El resutado del dado1 es:"+n)
}
function resultadoDado2(n:int):void{
trace("El resutado del dado2 es:"+n)
}
si quieres cambiar de parametros cada ves que se ejecute la funcion
Código PHP:
import Dado
var dado=new Dado(resultadoDado1,['soy el paramatro1']);
addChild(dado);
dado.x=100
dado.y=100
addEventListener(MouseEvent.CLICK,mouseClik)
function mouseClik(event:MouseEvent):void{
dado.start()
}
function resultadoDado1(n:int,param):void{
trace("El resutado del dado1 es:"+n+"\nEsto es el valor del Parametro actual:"+param)
dado.addFunctionParam(['soy el nuevo parametro con el nuevo resultado '+n])
}
y por ultimo si quieres cambiar de funcion cada ves que te entregue el resultado
Código PHP:
import Dado
var cuenta:int=0
var dado=new Dado(funcion1);
addChild(dado);
dado.x=100
dado.y=100
addEventListener(MouseEvent.CLICK,mouseClik)
function mouseClik(event:MouseEvent):void{
dado.start()
}
function funcion1(n:int):void{
trace("soy la funcion1 y el resultado del dado es:"+n)
dado.addFunction(funcion2)
}
function funcion2(n:int):void{
trace("soy la funcion2 y el resultado del dado es:"+n)
dado.addFunction(funcion1)
}
existen mas combinaciones pero eso te dejo a ti XDXD bueno espero que esto te sirva saludos