"类型强制失败"将String传递给AS3时的功能

时间:2015-10-01 10:07:26

标签: actionscript-3 flash

我读了这样的txt文件:

private function ReadFile():void
    {
        var loadedPage:String;
        var url:URLRequest = new URLRequest("file.txt");
        var loader:URLLoader = new URLLoader();
        loader.load(url);
        loader.addEventListener(Event.COMPLETE, loaderComplete);
        function loaderComplete(e:Event):void
        {
            loadedPage = loader.data;
            //if i trace loadedPage here it works great
            reader(loadedPage);
        }
    }

读者类在单独的文件中,它看起来像:

public class reader
{
    var pageContent:String;

    public function reader(loadedPage:String):void
    {
        pageContent = loadedPage;
        read();
    }

    private function read():void
    {
        trace(pageContent);
    }
}

但是我收到了一个错误:

  

[故障]异常,信息= TypeError:错误#1034:类型强制失败:无法转换" Lorem ipsum dolor sit amet,consectetur adipiscing elit

这就是file.txt在第一行包含的内容。

为什么会出现此错误?我不想尝试转换,我只是想通过Sting来实现功能。

1 个答案:

答案 0 :(得分:1)

您收到该错误是因为您正在尝试Apple doc(类型转换) SELECT distinct(t1.id) as id,t1.name FROM tbl1 t1 JOIN tbl1 t2 ON t1.id=t2.id and t1.name = t2.name; 到您的String对象。

所以为了避免这样你可以:

  • 使用reader课程的实例。在这里,我应该告诉你,班级名称总是以大写字母开头:reader而不是Reader。有关更多信息,请查看cast

所以对于这种情况,你可以这样做(它只是一个例子,我不明白为什么你需要这个):

reader
  • 使用var reader:Reader; // ... function loaderComplete(e:Event):void { loadedPage = loader.data; reader = new Reader(loadedPage); } 函数,例如static,如下所示:
public class Reader 
{
    // ...

    public static function read(loadedPage:String):void
    {
        trace(loadedPage);
    }
}

然后你可以写:

read()

希望可以提供帮助。