actionscript 3 - StageWebView in an AS3-Script



我已经在那个论坛上读了很多有用的东西。这是我第一次寻求具体的帮助。

我对Flash很陌生,有一个问题,我挣扎了一个多星期了。对于我的问题,最有效和最优雅的方法是将StageWebView-Call放入as-File中。

这就是计划:在我的flash-File中:显示一个PDF文档"xyz"并把它放在舞台上。

我已经用Switch-Case试过了,但是我很难摆脱PDF。

这就是我的想法:首先新建as-File…

package  {
import flash.display.MovieClip;
import flash.media.StageWebView;
import flash.geom.Rectangle;
import flash.filesystem.File;
import flash.display.Sprite;
import flash.display.Stage;

    public class mypdf {
            public var MyWebView:StageWebView
            public var file:String
            public var pdf:File

        public function mypdf(ActFile:String) {
                MyWebView = new StageWebView();
                file = ActualFile;                         //MARKING #1
                pdf = File.applicationDirectory.resolvePath(file);
                MyWebView.stage = stage;                   //MARKING #2
                MyWebView.viewPort = new Rectangle (200, 200, 400, 400);            
                MyWebView.loadURL(pdf.nativePath);
        }
    }
}

我想在我的flash-File中调用它。

stop();
var mynewpdf:mypdf = new mypdf("test.pdf");

显示了两个错误:

1120: Access of undefined property error ActualFile (at Marking #1)
1120: Access of undefined property error Stage (at Marking #2)

通过更多的工作,我可以通过为每个pdf定义许多不同的as-Scripts来避免第一个错误。我的主要问题是第二个错误。

如果有人有什么好主意就太好了。

再见,Stephan

第二个错误意味着你需要将舞台传递给web视图。要么将其作为参数传递给mypdf类,要么使mypdf显示对象(例如扩展Sprite)并将其添加到舞台。

我不确定这将解决你的问题无论如何-我认为StageWebView可以简单地显示html。PDF显示在浏览器中是因为启动了一个外部插件。

在AIR中情况似乎不同:http://sujitreddyg.wordpress.com/2008/01/04/rendering-pdf-content-in-adobe-air-application/

StageWebView不支持nativePath,而不是使用这个,你可以尝试使用pdf.url。并且StageWebView也支持打开。pdf文件。

public function mypdf(ActFile:String) {
            MyWebView = new StageWebView();
            file = ActualFile;                         //MARKING #1
            pdf = File.applicationDirectory.resolvePath(file);
            MyWebView.stage = stage;                   //MARKING #2
            MyWebView.viewPort = new Rectangle (200, 200, 400, 400);    
            addChild( MyWebView );        
            MyWebView.loadURL(pdf.url);
    }

因为,StageWebView将支持文件:///格式,但在nativePath我们得到C://..所以,这对你有帮助。或只需将StageWebView转换为显示对象,然后使用addElement()将其添加到容器中。

可以通过

进行转换
   var _view:SpriteVisualElement = new SpriteVisualElement();
   _view.addChild( MyWebView);
   this.addElement( view );

要通过测试,只需在addded_to_stage方法中调用该方法来测试stage是否具有。

如果stage未设置,则会出现此错误。

相关内容

最新更新