0

好的,我的 Flash CS5.5 程序遇到了一个奇怪的问题。我有一个主 swf,它加载另一个 swf 作为一种迷你游戏交易,然后在 swf 完成后继续。问题出在我的外部迷你游戏 swf 上。在 SWF 中,当您猜对第一个问题后,您将进入带有输入/输出图表的屏幕,并且有 2 个文本字段,玩家必须正确填写才能赢得积分并继续。这就是我遇到奇怪问题的地方。

每当我从主 SW​​F 运行 SWF 时,它会立即从填写正确答案的字段开始,如果您点击答案按钮,它每次都会告诉您它是不正确的,因此无法通过它。但是,如果我通过双击打开它在 SWF 之外自行运行游戏,它运行得很好并且问题不存在。有谁知道为什么会发生这种情况?谢谢大家。

编辑:我之前应该提到我的主要 SWF 是在 Adob​​e Flash Professional CS5.5 中构建的,而有问题的外部 SWF 是 Fl​​ashDevelop 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;
    }
4

0 回答 0