【问题标题】:Access of Undefined Property as3未定义属性 as3 的访问
【发布时间】:2011-03-17 05:47:48
【问题描述】:

我知道有很多帖子处理这个问题。但是,我还是没看懂。

我不断收到“1120:未定义属性 CSSloader 的访问”。在以下脚本中:

package as3.comp{

import flash.events.Event;
import flash.events.ProgressEvent;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.display.Loader;
import flash.display.MovieClip;
import flash.text.StyleSheet;


public class cont extends MovieClip {

    public var contentWidth:Number;
    public var contentHeight:Number;

    private var myXML:XML;
    private var myLoader:URLLoader;

    public function cont():void {
        //Start
    }

    public function start():void {
        myTooltip.start();
        myTooltip.followMouse(false);
        myTooltip.hide();
        myWaiting.start();
        myWaiting.hide();
        myXML = new XML();
        myXML.ignoreComments=true;
        myXML.ignoreWhitespace=true;
        contentWidth=100;
        contentHeight=100;
        contentSpace.width=contentWidth;
        contentSpace.height=contentHeight;
        //myWaiting.hide(); //hide clock
    }

    public function loadMc(contentFile:String):void {

        var pictLdr:Loader = new Loader();
        var pictURL:String=contentFile;
        var pictURLReq:URLRequest=new URLRequest(pictURL);
        pictLdr.contentLoaderInfo.addEventListener(Event.COMPLETE, imgLoadedF);
        pictLdr.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, preloader);
        pictLdr.load(pictURLReq);
        contentLoadMC.addChild(pictLdr);

    }

    private function imgLoadedF(event:Event):void {
        myTooltip.hide();
        MovieClip(parent.parent).addContentMovie(this);
        MovieClip(parent.parent).refresh();
    }

    private function preloader(event:ProgressEvent):void {
        var pcent:Number=event.bytesLoaded/event.bytesTotal*100;
        myTooltip.show(""+int(pcent));
    }

    public function loadCSS(event:Event):void {
        var CSSloader:URLLoader = new URLLoader();
        var req_css:URLRequest = new URLRequest("example.css");
        CSSloader.load(req_css);
        CSSloader.addEventListener("complete", loadXML);
    }

    public function loadXML(contentFile:String) {
        var XML_URL:String=contentFile;
        var myXMLURL:URLRequest=new URLRequest(XML_URL);
        myLoader=new URLLoader(myXMLURL);
        myLoader.addEventListener("complete", xmlLoaded);
    }

    private function xmlLoaded(event:Event):void {
        myXML=XML(myLoader.data);
        myXML.ignoreWhite = true;

        var sheet:StyleSheet = new StyleSheet();
        sheet.parseCSS(CSSloader.data);
        myHtmlText.styleSheet = sheet;


        myHtmlText.htmlText="HERE" + myXML.pageTop;
        myHtmlText.width=contentWidth-10;
        myHtmlText.height=myHtmlText.textHeight+30;
        myHtmlText.x=10;
        myHtmlText.y=10;
        contentSpace.width=contentWidth;
        contentSpace.height=myHtmlText.height+4;
        myWaiting.hide();
        MovieClip(parent.parent).addContentMovie(this);
        MovieClip(parent.parent).refresh();
        myLoader.removeEventListener("complete", xmlLoaded);

    }

    public function loadContent(contentFile:String) {
        if (contentFile.substr(-3)=="xml") {
            myWaiting.show();//show clock
            loadXML(contentFile);
        } else {
            myTooltip.show("0");
            loadMc(contentFile);
        }
    }
}

} 我尝试将 loadCSS 中的代码添加到 loadXML 和 xmlLoaded,但得到了相同的错误。

任何帮助将不胜感激。谢谢。

【问题讨论】:

    标签: css actionscript-3


    【解决方案1】:

    您在函数 loadCSS 中声明了 CSSloader,但在函数 xmlloaded 中出现错误,这是一个不同的范围。如果您希望 CSSloader 的作用域适用于所有函数,则必须将其声明为变量在这些函数之外 - 按照顶部的约定。 (不幸的是,您省略了这段代码的上下文,但我认为这是在一个类中?)。

    【讨论】:

    • 它在一个类中(我认为。新的类。)这是完整的文件代码:
    • 您尝试过 brennan 的建议吗?将此行 var CSSloader:URLLoader = new URLLoader(); 移动到此行 private var myLoader:URLLoader; 下方并将其设为私有。
    • 好的。做过某事。不再收到错误。但是,也没有得到 css 样式。
    • 我修好了!!在你们的帮助下。我以错误的顺序调用函数。 loadXML 调用 loadCSS,然后调用 xmlLoaded。哇!再次感谢大家。
    猜你喜欢
    • 1970-01-01
    • 2011-11-14
    • 2014-06-29
    • 2012-02-22
    • 2021-08-17
    • 2015-01-13
    • 2015-01-12
    • 2013-07-12
    • 1970-01-01
    相关资源
    最近更新 更多