0

XMLのランダムノードから動的テキストをロードするテキストフィールドがあります。これらのノードの一部には、ハイパーリンクが含まれています。

以下は、タップしたテキストにURLがある場合、StageWebViewをセットアップしてロードし、リンクに移動するために使用しているコードです

import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.events.MouseEvent;
import flash.net.URLRequest;
import flash.media.StageWebView;
import flash.geom.Rectangle;

stage.align = StageAlign.TOP_LEFT;

stage.scaleMode = StageScaleMode.NO_SCALE;

var webView:StageWebView;

var swvRect:Rectangle;

var swvHeight:Number;

var swvY:Number;

var linkURL:String;

storyTxt.addEventListener(MouseEvent.CLICK, linkClicked);

function linkClicked(e:MouseEvent):void {

var idx:int = e.target.getCharIndexAtPoint(e.localX, e.localY);
trace("Tapped:",idx);

var tf:TextFormat = e.target.getTextFormat(idx);
    if(tf.url != "" && tf.url != null) {
        linkURL = tf.url;
        trace(linkURL);

        if(webView!=null){

            return;
        }

         webView=new StageWebView();

         webView.stage=this.stage;

         webView.viewPort=new Rectangle(0,swvY,stage.stageWidth,swvHeight);

         webView.addEventListener(ErrorEvent.ERROR,onError);

         webView.addEventListener(LocationChangeEvent.LOCATION_CHANGING,onChanging);

         webView.addEventListener(Event.COMPLETE,onComplete);

         webView.loadURL(linkURL);

    }
}

リンクのあるテキストをタップすると、モバイルのブラウザ [Safari] と StageWebView の両方が開きます。アプリがブラウザに切り替わってリンクを開くのを止める方法はありますか?

ありがとうダニエル

4

2 に答える 2

0

次のようなものを試すことができます:

function onChanging(event:LocationChangeEvent):void
{
    //prevents the loading of the new URL
    event.preventDefault();
    //open safari/external browser
    navigateToURL(new URLRequest(event.location));
}
于 2013-12-16T14:49:33.937 に答える
0

コードに URLRequest/URLLoader 関数がないため、どこに e.preventDefault() を配置できますか?

ハイパーリンクテキストをタップするとブラウザが開くxmlテキストのアンカータグが原因だと思います。

于 2013-12-17T09:59:52.777 に答える