Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.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
Actionscript 3 为循环分配动态掩码时出现问题_Actionscript 3 - Fatal编程技术网

Actionscript 3 为循环分配动态掩码时出现问题

Actionscript 3 为循环分配动态掩码时出现问题,actionscript-3,Actionscript 3,我通过XML加载了8个缩略图,放在一个精灵中,并用一个辅助网格类将它们隔开。这部分是有效的。不起作用的是,当我尝试为每幅图像分配一个遮罩(使用我制作的simpleRectangle类)时,我似乎只是在为最后一幅图像分配一个遮罩。“imageLoader.mask=\u mask;”是否有问题 我在这里的最终努力是单击缩略图并设置遮罩动画,以显示整个拇指 我嵌套了showPictures函数,以便它可以引用掩码,这不是最佳的,因此如果有人能帮助我找到更好的方法,我将非常感激 包装 public c

我通过XML加载了8个缩略图,放在一个精灵中,并用一个辅助网格类将它们隔开。这部分是有效的。不起作用的是,当我尝试为每幅图像分配一个遮罩(使用我制作的simpleRectangle类)时,我似乎只是在为最后一幅图像分配一个遮罩。“imageLoader.mask=\u mask;”是否有问题

我在这里的最终努力是单击缩略图并设置遮罩动画,以显示整个拇指

我嵌套了showPictures函数,以便它可以引用掩码,这不是最佳的,因此如果有人能帮助我找到更好的方法,我将非常感激

包装

public class MiniGallery extends Sprite
{
        //create($columns:int, $rows:int, $xSpacing:int, $ySpacing:int, $xPadding:int, $yPadding:int)

        private var imagePoints:Array = grid.create(8, 1, 100, 0, 10.5, 15);
        private var fadeTween:*
        private var imageText:TextField = new TextField();
        private var imageLoader:Loader;                                 
        private var xml:XML;                                                
        private var xmlList:XMLList;                                    
        private var xmlLoader:URLLoader 
        private var i:int
        private var _mask:SimpleRectangle;
        private var _sprite:Sprite;



    public function MiniGallery()
    {
        flash.system.Security.allowDomain("*")  
        var xmlLoader:URLLoader = new URLLoader();              
        xmlLoader.load (new URLRequest("data/images.xml")); 
        xmlLoader.addEventListener (Event.COMPLETE, xmlLoaded); 

    }

        private function xmlLoaded (event:Event):void                   
        {
            xml = XML(event.target.data);                       
            xmlList = xml.children();                           
                trace('xmlList is: ' + xmlList)
            for (i = 0; i < xmlList.length(); i++)      
            {
                imageLoader = new Loader();
                imageLoader.load (new URLRequest(xmlList[i].attribute("thumb")));   
                createBoxes ();
            }
        }


            private function createBoxes ():void
            {
                for (var j:int = 0; j < 1; j++)

                {

                    imageLoader.addEventListener(MouseEvent.CLICK, showPicture) 
                    imageLoader.x = imagePoints[i].x;                   
                    imageLoader.y = imagePoints[i].y - 36;
                    _mask = new SimpleRectangle(88,50, 0x000000, 0x000000, 0, 1);
                    _mask.name = xmlList[i].toString();
                    imageLoader.name = xmlList[i].attribute("source");
                    trace('imageLoader name is ' + imageLoader.name)
                    _mask.x = imagePoints[i].x
                    _mask.y = imagePoints[i].y
                    imageLoader.mask = _mask;
                    trace('mask name is ' + _mask.name)
                    addChild (imageLoader);
                    _sprite = new Sprite
                    _sprite.addChild(imageLoader)
                    addChild(_sprite)
                    _sprite.addChild(_mask)


                }


        function showPicture (event:MouseEvent):void
        { 


            TweenLite.to(_mask, 3, {scaleY:-40, ease:Quad.easeOut});





        }

    }


}
public类迷你画廊扩展了Sprite
{
//创建($columns:int、$rows:int、$xspace:int、$yspace:int、$xPadding:int、$yPadding:int)
私有var imagePoints:Array=grid.create(8,1100,0,10.5,15);
之间的专用变量:*
private var imageText:TextField=new TextField();
私有var-imageLoader:Loader;
私有var-xml:xml;
私有var xmlList:xmlList;
私有变量xmlLoader:URLLoader
私有变量i:int
私有变量掩码:SimpleRectangle;
私有变量精灵:精灵;
公共功能小型画廊()
{
flash.system.Security.allowDomain(“*”)
var xmlLoader:URLLoader=新的URLLoader();
xmloader.load(新的URLRequest(“data/images.xml”);
xmlLoader.addEventListener(Event.COMPLETE,xmlLoaded);
}
私有函数xmlLoaded(事件:事件):void
{
xml=xml(event.target.data);
xmlList=xml.children();
跟踪('xmlList为:'+xmlList)
对于(i=0;i
这将正确跟踪stackOverflow不会显示的XmlList,如下所示:

xmlList是:

<image source="m1" thumb="thumbnails/dj051.jpg">mask1</image>
<image source="m2" thumb="thumbnails/dj052.jpg">mask2</image>
<image source="m3" thumb="thumbnails/dj053.jpg">mask3</image>
<image source="m4" thumb="thumbnails/dj054.jpg">mask4</image>
<image source="m5" thumb="thumbnails/dj055.jpg">mask5</image>
<image source="m6" thumb="thumbnails/dj056.jpg">mask6</image>
<image source="m7" thumb="thumbnails/dj057.jpg">mask7</image>
<image source="m8" thumb="thumbnails/dj058.jpg">mask8</image>
mask1
mask2
mask3
mask4
mask5
mask6
mask7
mask8
imageLoader的名称是m1 掩码名为mask1 imageLoader的名称是m2 面具的名字是mask2 imageLoader的名称是m3 面具的名字是mask3 imageLoader的名称是m4 面具的名字是mask4 imageLoader的名称是m5 面具的名字是mask5 imageLoader的名称是m6 面具的名字是mask6 imageLoader的名称是m7 面具的名字是mask7 imageLoader的名称是m8
遮罩名称是mask8

我认为你应该把所有需要的遮罩的所有矩形绘制成一个精灵或形状的一个图形上下文,并将其作为遮罩附着在显示对象上。一个精灵只能有一个面具