Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.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 如何从Loader对象获取宽度和高度_Flash_Actionscript 3 - Fatal编程技术网

Flash 如何从Loader对象获取宽度和高度

Flash 如何从Loader对象获取宽度和高度,flash,actionscript-3,Flash,Actionscript 3,但当我跑步时,我的宽度和高度都是0。如何获得正确的值? 另外,如果图片加载正确,并且在我将其连接到movieclip后,为什么我不能从movieclip对象获取宽度和高度?图像的加载不是即时的。 在一个事件中跟踪宽度和高度。完成处理程序,它将正常工作 图像的加载不是即时的。 在一个事件中跟踪宽度和高度。完成处理程序,它将正常工作 是我还是你在整个活动开始前询问宽度和高度?设置完w和h跟踪后,如果将它们移动到“someHandler”函数中,会得到什么结果?是我还是在触发完整事件之前询问宽度和高度

但当我跑步时,我的宽度和高度都是0。如何获得正确的值?
另外,如果图片加载正确,并且在我将其连接到movieclip后,为什么我不能从movieclip对象获取宽度和高度?

图像的加载不是即时的。

在一个事件中跟踪宽度和高度。完成处理程序,它将正常工作

图像的加载不是即时的。

在一个事件中跟踪宽度和高度。完成处理程序,它将正常工作

是我还是你在整个活动开始前询问宽度和高度?设置完w和h跟踪后,如果将它们移动到“someHandler”函数中,会得到什么结果?

是我还是在触发完整事件之前询问宽度和高度?设置w和h跟踪后,如果将它们移动到“someHandler”函数中,会得到什么结果?

您要求的是contentLoaderInfo.height。。。您应该询问内容高度

package
{
    import flash.display.*;
    import flash.events.*;
    import flash.net.URLRequest;

    public class Main extends MovieClip
    {
        // state
        private var iname:String = "image.gif";
        private var w:int;
        private var h:int;
        private var loader:Loader;

        // constructor
        public function Main():void
        {
            loadImage( iname ); 
            trace( w + " " + h );

        }

        // methods
        private function loadImage( filename:String ):void
        {
            loader = new Loader();
            loader.contentLoaderInfo.addEventListener( Event.COMPLETE, completeHandler );
            loader.contentLoaderInfo.addEventListener( Event.COMPLETE, someHandler );
            var request:URLRequest = new URLRequest( filename );
            loader.load( request );
            this.addChild( loader );        
        }



        // event handlers
        private function completeHandler( event:Event ):void
        {           
            trace( "image loaded\n" + event.target.url );
            trace( event.target );
        }           

        private function someHandler( event:Event ):void
        {
            w = loader.contentLoaderInfo.width;
            h = loader.contentLoaderInfo.height;            
        }
    }
}

你要的是contentLoaderInfo.高度。。。您应该询问内容高度

package
{
    import flash.display.*;
    import flash.events.*;
    import flash.net.URLRequest;

    public class Main extends MovieClip
    {
        // state
        private var iname:String = "image.gif";
        private var w:int;
        private var h:int;
        private var loader:Loader;

        // constructor
        public function Main():void
        {
            loadImage( iname ); 
            trace( w + " " + h );

        }

        // methods
        private function loadImage( filename:String ):void
        {
            loader = new Loader();
            loader.contentLoaderInfo.addEventListener( Event.COMPLETE, completeHandler );
            loader.contentLoaderInfo.addEventListener( Event.COMPLETE, someHandler );
            var request:URLRequest = new URLRequest( filename );
            loader.load( request );
            this.addChild( loader );        
        }



        // event handlers
        private function completeHandler( event:Event ):void
        {           
            trace( "image loaded\n" + event.target.url );
            trace( event.target );
        }           

        private function someHandler( event:Event ):void
        {
            w = loader.contentLoaderInfo.width;
            h = loader.contentLoaderInfo.height;            
        }
    }
}

在发布之前,请花几秒钟清除任何注释代码,这只是供我们阅读的更多内容,它实际上没有任何作用。在发布之前,请花几秒钟清除任何注释代码,它只是让我们更容易阅读,实际上它什么都不做。你可以得到contentLoaderInfo的宽度和高度,它将返回对象的标称宽度或高度,而不管缩放值如何。你可以得到contentLoaderInfo的宽度和高度,它将返回对象的标称宽度或高度,而不管缩放值如何缩放值。是的,你是对的,如果我将跟踪移动到“someHandler”函数中,那么我将正确地获取维度。但我的问题是,我想在构造函数中使用这些维度从加载程序内容生成BitmapData对象,我需要宽度和高度来实例化一个对象。由于构造函数体上的值似乎未知,我如何才能做到这一点?这是不可能的,您需要在加载程序完成加载后创建位图数据,然后可能会分派一个事件,以便任何需要位图数据的人都知道它已准备好,然后使用它。如果您正在预加载所有内容,您可以在加载栏显示时完成所有这些操作,这样当您的应用程序实际启动时,信息就准备好了,您可以对其执行任何操作。是的,您是对的,如果我将跟踪移到“someHandler”函数中,那么我可以正确地获取尺寸。但我的问题是,我想在构造函数中使用这些维度从加载程序内容生成BitmapData对象,我需要宽度和高度来实例化一个对象。由于构造函数体上的值似乎未知,我如何才能做到这一点?这是不可能的,您需要在加载程序完成加载后创建位图数据,然后可能会分派一个事件,以便任何需要位图数据的人都知道它已准备好,然后使用它。如果您正在预加载所有内容,您可以在加载栏显示时完成所有操作,这样当您的应用程序实际启动时,信息就准备好了,您可以用它做任何您想做的事情。是的,正如我对Omnomlets说的,您都是正确的。但我的问题是让构造函数体知道这些值,并将它们用作参数,从类的构造函数实例化一个新对象(如果可能的话,也可以用另一种方式)。是的,正如我对Omnomlets所说的,你们都是对的。但我的问题是让构造函数体知道这些值,并将它们用作参数,从类的构造函数实例化一个新对象(或者以其他方式,如果可能的话)。