Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flash:制作可交互的图像_Flash_Actionscript 3 - Fatal编程技术网

Flash:制作可交互的图像

Flash:制作可交互的图像,flash,actionscript-3,Flash,Actionscript 3,我试图弄清楚如何拍摄一张照片,并使它在不同的部分可以相互作用。 图像是一组箭头,它们构成一个圆圈,我想发生的是,当一个特定的箭头悬停在它上面时,会放大箭头并悬停在两个相邻的箭头上 我从illustrator导入图像,使其在单个框架上闪烁,并使每个箭头都成为一个按钮,向下的图像是放大版,但似乎这些图像是在不同的层上? 当我将鼠标悬停在其中一个箭头上时,它在一个箭头下,但在另一个箭头上 如何使悬停箭头始终位于电影中所有其他图像的顶部 也许是一个代码,onHover将符号带到舞台的前面?我不是100%

我试图弄清楚如何拍摄一张照片,并使它在不同的部分可以相互作用。 图像是一组箭头,它们构成一个圆圈,我想发生的是,当一个特定的箭头悬停在它上面时,会放大箭头并悬停在两个相邻的箭头上

我从illustrator导入图像,使其在单个框架上闪烁,并使每个箭头都成为一个按钮,向下的图像是放大版,但似乎这些图像是在不同的层上? 当我将鼠标悬停在其中一个箭头上时,它在一个箭头下,但在另一个箭头上

如何使悬停箭头始终位于电影中所有其他图像的顶部


也许是一个代码,onHover将符号带到舞台的前面?

我不是100%确定你的flash应用程序/电影的结构,但我认为你会按照以下思路做一些事情:

import flash.display.Sprite;
import flash.events.MouseEvent;

arrow.addEventListener(MouseEvent.MOUSE_OVER, onArrowMouseOver);
arrow.addEventListener(MouseEvent.MOUSE_OUT, onArrowMouseOut);

function onArrowMouseOver(e:MouseEvent):void
{
    var arrow:Sprite = Sprite(e.target);
    setChildIndex(arrow, this.numChildren-1);
    arrow.scaleX = arrow.scaleY = 2;
}

function onArrowMouseOut(e:MouseEvent):void
{
    var arrow:Sprite = Sprite(e.target);
    arrow.scaleX = arrow.scaleY = 1;
}

您可以附加一个事件侦听器函数来对MouseEvent.MOUSE_作出反应,这将使按钮位于最前面

创建MyButton.as代码以保存扩展SimpleButton的类,并在其中添加侦听器函数。然后在“属性”面板中将MyButton设置为箭头符号的基类

package {

    import flash.display.SimpleButton;
    import flash.events.MouseEvent;

    public class MyButton extends SimpleButton {
        private function onMouseOver ( ev:MouseEvent ) : void {
            parent.setChildIndex (this, parent.numChildren -1);
        }

        public function MyButton () {
            addEventListener (MouseEvent.MOUSE_OVER, onMouseOver);
        }
    }
}

你可能应该在或者,你可以附加一个.fla的地方问这个问题,人们可以更仔细地观察你做错了什么。我认为你在这里也是对的;这也会起作用,但您必须将侦听器添加到每个arrow实例中,并且它是不可重用的,您可以创建箭头对象的数组或向量,并使用for循环向每个箭头实例添加侦听器。唯一的问题是,您应该检查MyButton对象的stage属性是否为null,以指示MyButton对象是否已添加到显示列表中。如果以编程方式添加MyButton对象,则会出现错误,因为父属性将为null,并且您尝试访问其属性/方法。否,父属性将不为null,因为它是在事件处理程序函数内调用的-不会有鼠标悬停事件,除非鼠标实际悬停在按钮上,这只能在它被添加到舞台之后发生。