【问题标题】:can't get movieClip from loaded swf无法从加载的 swf 中获取 movieClip
【发布时间】:2015-06-01 13:55:39
【问题描述】:

通过以下代码,我导入了一个外部 swf 文件。当我尝试在导入的 swf 中访问一个名为 temaResim 的影片剪辑时,Flash 给我错误,找不到该影片剪辑。我很确定我在导入的 swf 文件中有 temaResim,任何帮助都会非常有用。

谢谢各位。

function temaYukle(temaNo)
		{
			var resim:URLRequest = new URLRequest(yolum+"videolar/bilisselbecerilermodulu/17/"+temaNo+".swf");
			var img:Loader = new Loader();
			img.contentLoaderInfo.addEventListener(Event.COMPLETE, imageLoaded);
			img.load(resim);
			function imageLoaded(e:Event):void
			{
				setRegPoint(img,img.width/2,img.height/2);

				if (temaNo==temam)
				{
					trace(e.target);
					tema = e.currentTarget.content as MovieClip;
					img.scaleX *=  0.85;
					img.scaleY *=  0.85;
					img.x = stage.stageWidth / 2;
					img.y = stage.stageHeight / 2 - 20;
					addChildAt(img,0);
// here comes error    					
trace(tema.temaResim);
					
					temaMaske();
				}
              }
          }

我处理导入的 swf 文件 当我将其他图像导入到导入的 swf 库并将其实例名称设置为 temaResim 时,它可以工作,但是当我尝试我必须使用的图像时,它不起作用。

【问题讨论】:

    标签: actionscript-3 flash


    【解决方案1】:

    使用括号语法

    function temaYukle(temaNo)
        {
            var resim:URLRequest = new URLRequest(yolum+"videolar/bilisselbecerilermodulu/17/"+temaNo+".swf");
            var img:Loader = new Loader();
            img.contentLoaderInfo.addEventListener(Event.COMPLETE, imageLoaded);
            img.load(resim);
            function imageLoaded(e:Event):void
            {
                setRegPoint(img,img.width/2,img.height/2);
    
                if (temaNo==temam)
                {
                    trace(e.target);
                    tema = e.currentTarget.content as MovieClip;
                    img.scaleX *=  0.85;
                    img.scaleY *=  0.85;
                    img.x = stage.stageWidth / 2;
                    img.y = stage.stageHeight / 2 - 20;
                    addChildAt(img,0);
    // here comes error                     
    trace(img.content["temaResim"]);
    
                    temaMaske();
                }
              }
          }
    

    我希望这会有所帮助。

    【讨论】:

    • 我试过 trace(tema["resimTema"]);但仍然没有解决方案
    • 尝试使用 img.content["resimTema"] 而不是 tema["temaResim"]
    • ReferenceError: 错误 #1069: 2_fla.maintimeline__preloader_ 找不到 temaResim 功能并且没有默认值。
    • 所以你的 swf 似乎没有这个属性。我为自己尝试过并为我工作过。你想要证明吗?
    • 我处理导入的 swf 文件当我将其他图像导入到导入的 swf 库并将其实例名称设置为 temaResim 时,它可以工作,但是当我尝试我必须使用的图像时,它不起作用。 ,问题不在于代码,而在于加载的 swf 文件。
    【解决方案2】:

    这令人难以置信,但确实如此,我必须更改名称为 temaResim 的 ımage,现在它可以工作了,

    【讨论】:

      【解决方案3】:

      不是 LoaderInfo 保存内容 ;-)

      tema = e.currentTarget.loader.content as MovieClip;
      

      【讨论】:

      • 非常感谢,我试过你的代码,但我有同样的错误信息
      • 试试img.content as MovieClip。您不需要推荐人双重。进一步在您的if-条件中为我们提供trace(img.content) 的输出。和错误消息。
      • 啊,请务必将内容添加到舞台,而不是加载器
      猜你喜欢
      • 2012-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-10
      • 1970-01-01
      • 2020-02-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多