我全都在那个论坛上阅读了很多有用的东西。现在,这是我第一次请求具体的帮助。
我对Flash很陌生并且有一个问题我现在奋斗了一个多星期。我的问题最有效和最优雅的方法是将StageWebView-Call放入as-File。
那将是计划: 在我的flash文件中:显示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文件中调用它...
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,我可以避免第一个错误。 我的主要问题是第二个错误。
如果有人有任何好主意,那将是非常好的。
再见 斯蒂芬
答案 0 :(得分:0)
第二个错误意味着您需要将舞台传递到Web视图。将其作为参数传递给mypdf类,或者使mypdf DisplayObject(例如扩展Sprite)并将其添加到舞台。
我不确定这会解决你的问题 - 我认为StageWebView可以简单地显示html。 PDF将显示在您的浏览器中,因为它的外部插件已启动。
在AIR中,情况似乎有所不同:http://sujitreddyg.wordpress.com/2008/01/04/rendering-pdf-content-in-adobe-air-application/
答案 1 :(得分:0)
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将支持file:///格式,但在nativePath中我们得到了C:// ..,所以,这对你有帮助。要么 只需将StageWebView转换为Display对象,然后使用addElement()将其添加到容器中。
你可以转换它,
var _view:SpriteVisualElement = new SpriteVisualElement();
_view.addChild( MyWebView);
this.addElement( view );
要测试,只需在added_to_stage方法中调用此方法,以测试stage是否有。如果未设置阶段,也会出现此错误。