好的,我的flash CS5.5程序遇到了一个奇怪的问题。我有一个主swf加载另一个swf作为一种迷你游戏交易,然后在swf完成后继续。问题出在我的外部迷你游戏swf上。在您猜测第一个问题后,在SWF中,您将被带到具有输入/输出图表的屏幕,并且有2个文本字段,玩家必须正确填写才能赢得积分并继续。这就是我遇到奇怪问题的地方。
每当我从主SWF运行SWF时,它会立即开始填写正确答案的字段,如果你点击答案按钮,它会告诉你每次都不正确,所以没有超过它。但是,如果我通过双击打开它在SWF之外单独运行游戏它运行得很好并且问题不存在。有没有人知道为什么会这样?提前谢谢大家。
编辑: 我之前应该提到我的主要SWF是用Adobe Flash Professional CS5.5构建的,而有问题的外部SWF是FlashDevelop 4项目。
以下是加载外部迷你游戏swf的代码:
toolLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, updateCurrentProgress);
toolLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onToolLoaderComplete);
function updateCurrentProgress(evt:ProgressEvent):void {
var currentLoaded:Number = evt.bytesLoaded/evt.bytesTotal;
currentLoaded = Math.round(currentLoaded*100);
// update the preloader bar
progressBarLoad.graphics.beginGradientFill(GradientType.LINEAR, [0xaaaaff, 0x000088], [1, 1], [0, 255], gradientMatrix, SpreadMethod.PAD);
progressBarLoad.graphics.drawRect(1, stage.stageHeight-49, int(currentLoaded*8)-1, 48);
// update the preloader text
progPercentText.text = "Loading... "+currentLoaded+"%";
}
function onToolLoaderComplete(evt:Event):void {
addChild(toolLoader);
addEventListener(Event.COMPLETE, gotoQuestions);
}
来自外部swf的游戏代码用于填充表单字段(我没有编写此函数):
private function populateRule(rule:Function, startPoint:Number, increment:Number):Array{
trace("populateRule");
var temp:Array = new Array();
temp.push(new Array());
temp.push(new Array());
for( var i:int = 0; i<5; i++){
temp[0].push(Number(startPoint + (increment * i)));
temp[1].push(rule(startPoint + (increment * i)));
trace(ruleWindow.ruleTable[("in" + Number(i + 1).toString())].text);
trace(ruleWindow.ruleTable[("out" + Number(i + 1).toString())].text);
ruleWindow.ruleTable[("in" + Number(i + 1).toString())].text = temp[0][i].toString();
ruleWindow.ruleTable[("out" + Number(i + 1).toString())].text = temp[1][i].toString();
}
return temp;
}