Problems with STAGE



我对as3编程很陌生。这个论坛已经帮助了我很多,但现在我遇到了一个我不知道如何继续的问题。所以这是我在堆栈 overflow.com 上的第一篇文章。

我需要StageWebView来显示PDF文档。几个小时后,我成功了。我在一个新的空白文档中创建了代码,并逐步对其进行了测试。

This is my code:
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 function StageWebViewExample(pdfdoc:String, xpos:Number, ypos:Number, breite:Number, hoehe:Number) 
{
    var webView:StageWebView = new StageWebView();
    webView.stage = this.stage;   //PROBLEM LINE
    webView.viewPort = new Rectangle (xpos, ypos, breite, hoehe);           
    var file:String = pdfdoc;
    var pdf:File = File.applicationDirectory.resolvePath(file);
    webView.loadURL(pdf.nativePath);            
}
StageWebViewExample("test.pdf", 200, 200, 600, 1200);

测试后,我将代码复制到现有的 Flash 文档中。(几个即文件中的代码和"调用"(StageWebViewExample("....)在现有的闪存文档中...

但是现在代码不再工作,并且存在以下错误:- 1119 访问可能未定义的属性阶段...- 1059 属性是只读的。--> 两个错误都是指我在代码中标记的同一行。

有谁知道为什么它不起作用?我真的很感激一个很好的提示!

问题的答案是你的行动;)你从文档类中移动了另一个代码,这些代码无权访问作为实例属性的阶段。我的意思是this.stage.将 Stage 传递给方法 StageWebViewExample,函数签名将如下所示:

public function stageWebViewExample(stage: Stage, pdfdoc:String, xpos:Number, ypos:Number, breite:Number, hoehe:Number):void {
    var webView:StageWebView = new StageWebView();
    webView.stage = stage;   
    webView.viewPort = new Rectangle (xpos, ypos, breite, hoehe);           
    var file:String = pdfdoc;
    var pdf:File = File.applicationDirectory.resolvePath(file);
    webView.loadURL(pdf.nativePath);            
}

工作空气示例:

package {
    import flash.display.Sprite;
    import flash.display.Stage;
    import flash.display.StageAlign;
    import flash.display.StageScaleMode;
    import flash.events.Event;
    import flash.geom.Rectangle;
    import flash.media.StageWebView;
    public class StackOverflow extends Sprite {
        public function StackOverflow() {
            addEventListener(Event.ADDED_TO_STAGE, onAdded);
        }
        private function onAdded(e:Event):void {
            removeEventListener(Event.ADDED_TO_STAGE, onAdded);
            stage.align = StageAlign.TOP_LEFT;
            stage.scaleMode = StageScaleMode.NO_SCALE;
            start();
        }
        private function start():void {
            showWebViewAt(this.stage, "http://www.iab.net/media/file/VASTv3.0.pdf", new Rectangle(0, 0, stage.stageWidth * 0.5, stage.stageHeight));
        }
        private function showWebViewAt(stage:Stage, path:String, frame:Rectangle):void {
            var webView:StageWebView = new StageWebView();
            webView.stage = stage;
            webView.viewPort = frame;
            webView.loadURL(path);
        }
    }
}

相关内容

  • 没有找到相关文章

最新更新