将SWF导入为hitTestState

时间:2010-08-12 20:17:43

标签: actionscript-3

前言:我正在使用导入的图像制作美国50个州的地图。

我正在使用一段XML将图像路径导入Loaders,然后使用Loaders填充多个影片剪辑(这样可以正常工作)。我发现自己现在需要以每个美国州的形状导入SWF作为50个按钮的hitTestState。有人建议我使用一个单独的类来定义新的按钮状态,但我担心我的编程技巧还没有发展到足以让我理解我的能力:

一个。将包含SWF路径的XMLList信息传递给新类 湾使用for循环

填充50个按钮的hitTestState(s)

这是我用来将图像填充到各个按钮中的功能。我想我会使用相同的函数生成或填充一个按钮,我可以将SWF作为hitTestState发送到该按钮。

private function populateButtonImages(): void {

            //var hoverState:StateBut = new StateBut();//

            for(var i:int = 0; i <= total; i++){

                offLoader = new Loader();
                hoverLoader = new Loader();
                //hitLoader = new Loader();

                var offName:String = pathage + _activeImage[i].toString();
                var hoverName:String = pathage + _hoverImage[i].toString();
                //var hitName:String = pathage + _hitState[i].toString();

                offLoader.load(new URLRequest(offName));
                hoverLoader.load(new URLRequest(hoverName));
                //hitLoader.load(new URLRequest(hitName));

                this["button" + i].offImage.addChild(offLoader);
                this["button" + i].hoverImage.addChild(hoverLoader);
                //this["button" + i].hitButton.addChild(hitLoader);


                //this["button" + i].hitButton = new StateBut();//
                this["button" + i].hoverImage.mouseEnabled = false;
                //this["button" + i].buttonMode = true;

                //moves hover image to more appropriate location over button
                this["button" + i].hoverImage.x = _hoverOffsetX[i];
                this["button" + i].hoverImage.y = _hoverOffsetY[i];

            }

            addMapButtonListeners();

        }

我已经注释了我最初尝试将SWF作为hitStates添加到剪辑的行。

在一个完美的世界中,我想制作50个按钮,填充按钮的up,over和hitStates,而不必担心在MovieClip上执行hitTests以及到目前为止我已经解决的各种其他问题

帮助?建议是受欢迎的。知识就是力量。

1 个答案:

答案 0 :(得分:0)

如果你有hitareas作为矢量和每个状态的图形,那么在Flash IDE中手动创建按钮可能更容易?然后,您可以在每个按钮上“导出for Actionscript”并导出为一个SWF。

在您的主项目中,您可以加载SWF并可以访问所有工作按钮。