トップへ戻るニュースフォーラムFLASH-ML 過去ログBak@Flaダウンロードよくある質問と答
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   ActionScript 3.0 特設会議室
     AIRブラウザでのhtmlページリンク指定(blank)
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
tonkotu
Åê¹ÆNo.43808
投稿日時: 2009-10-29 20:19
常連
居住地:
投稿: 62
使用環境:
windows-XP,flashCS3,AIR1.0
AIRブラウザでのhtmlページリンク指定(blank)
お世話になります。
色々なAIRブラウザがありますが、どれも別ページでのリンク(targetがblank)ができないのは仕様なのでしょうか?

例:「WebKut」

自分でも調べてみたのですがairのヘルプにも載っておらず・・・。
普通のブラウザと違い、AIRのウィンドウを2つ以上出すということが難しいからかな・・・と思ったり。

実はできるよ!などありましたらご教授頂ければ有難いです。
宜しくお願い致します。


----------------
flashCS3

永井勝則
Åê¹ÆNo.43810
投稿日時: 2009-10-30 14:59
職人
居住地: 白馬村
投稿: 796
使用環境:
Windows 7 :Flash CS4:
10.6.8 :Flash CS5.5
Re: AIRブラウザでのhtmlページリンク指定(blank)
いまいち理解が進んでいませんが、HTMLHostクラスの作例を見ながら、実験してみました。
ヘルプには、
引用:
HTMLHost クラスのメソッドを使用して、window の各設定を変更することができます。このクラスを使用するには、HTMLHost クラス (サブクラス) を拡張する新しいクラスを作成し、動作を定義する対象となるメソッドをオーバーライドします。HTMLHost クラスのメソッドは、JavaScript のプロパティおよびメソッドを次のように処理します。

とあり、JavaScriptのwindow.open()はcreateWindow()で処理できると書かれています。

HTMLHostを拡張するCustomHostクラス
package {
    import flash.html.HTMLHost;
    import flash.html.HTMLLoader;
    import flash.html.HTMLWindowCreateOptions;
    import flash.display.NativeWindow;
    import flash.display.NativeWindowInitOptions;
    import flash.display.StageScaleMode;
    import flash.display.StageAlign;

    public class CustomHost extends HTMLHost {
     
        public function CustomHost() {
            super();
        }
       
        override public function createWindow(windowCreateOptions:HTMLWindowCreateOptions):HTMLLoader {
			
            var options:NativeWindowInitOptions = new NativeWindowInitOptions();			
            var window:NativeWindow = new NativeWindow(options);
            window.visible = true;
			
            var htmlLoader:HTMLLoader = new HTMLLoader();
            htmlLoader.width = window.width;
            htmlLoader.height = window.height;
            window.stage.scaleMode = StageScaleMode.NO_SCALE;
	    window.stage.align = StageAlign.TOP_LEFT;
            window.stage.addChild(htmlLoader);
            return htmlLoader;
        }
    }
}


メインのタイムライン
function makeBrowser() {
	var htmlLoader:HTMLLoader=new HTMLLoader;
	htmlLoader.width=stage.stageWidth;
	htmlLoader.height=stage.stageHeight;

	addChild( htmlLoader );
	htmlLoader.stage.nativeWindow.activate();
	htmlLoader.load( new URLRequest("testBlank.html") );

	var host:CustomHost = new CustomHost();
	htmlLoader.htmlHost=host;
}
makeBrowser();


testBlank.htmlには、次のようなHTMLコードを書いています。
<body>
<a href="http://リンク先" target="_blank">リンクテキスト</a>
<p>_blankリンク<p>
</body>

Flashでムービープレビューすると、「AIRブラウザ」に"リンクテキスト"が表示され、それをクリックすると、
リンク先が別のウィンドウに開きます。


----------------
永井勝則:
himco.jp :

tonkotu
Åê¹ÆNo.43812
投稿日時: 2009-10-30 19:09
常連
居住地:
投稿: 62
使用環境:
windows-XP,flashCS3,AIR1.0
Re: AIRブラウザでのhtmlページリンク指定(blank)
永井様レス有難うございます。できるのですね!すごい

さっそくご記述頂いたソースをテストコンパイルしてみました。
何点かコンパイルエラーが出てしまいました(ざっとみてもおかしそうな部分がなかったのですが・・・)うーん

引用:
**Error** シーン 1, レイヤー 'レイヤー 1', フレーム 1、行 3: 1120: 未定義のプロパティ stage へのアクセスです。 htmlLoader.width=stage.stageWidth;
**Error** シーン 1, レイヤー 'レイヤー 1', フレーム 1、行 4: 1120: 未定義のプロパティ stage へのアクセスです。 htmlLoader.height=stage.stageHeight;
**Error** シーン 1, レイヤー 'レイヤー 1', フレーム 1、行 6: 1180: 未定義である可能性が高いメソッド addChild の呼び出しです。
addChild( htmlLoader );
**Error** シーン 1, レイヤー 'レイヤー 1', フレーム 1、行 8: 1180: 未定義である可能性が高いメソッド URLRequest の呼び出しです。
htmlLoader.load( new URLRequest("testBlank.html") );
**Error** asCustomHost.as、行 1: 1180: 未定義である可能性が高いメソッド addFrameScript の呼び出しです。
package {
**Error** asCustomHost.as、行 1: 5000: クラス 'CustomHost' は 'flash.display.MovieClip' をサブクラスとする必要があります。同じ型のライブラリシンボルにリンクしているためです。


----------------
flashCS3

永井勝則
Åê¹ÆNo.43813
投稿日時: 2009-10-30 19:38
職人
居住地: 白馬村
投稿: 796
使用環境:
Windows 7 :Flash CS4:
10.6.8 :Flash CS5.5
Re: AIRブラウザでのhtmlページリンク指定(blank)
CustomHost.asファイルはFLAファイルと同階層に置くだけです。
そのFLAファイルのメインのタイムラインに上記のコードを書きます。

ドキュメントクラスを使う場合には、FLAファイルのドキュメントクラスをMainに設定した場合、次のようなMain.asファイルをFLAファイルと同階層におきます。(といっても内容はフレームに書いたコードと同じです。)
ちなみにわたしはFlash CS4、AIR1.5(でしたっけ?)です。

package {
	
	import flash.display.Sprite;
	import flash.html.HTMLLoader;
	import flash.net.URLRequest;

	public class Main extends Sprite {

		public function Main() {
			var htmlLoader:HTMLLoader=new HTMLLoader  ;
			trace(stage)	// [object Stage]
			htmlLoader.width=stage.stageWidth;
			htmlLoader.height=stage.stageHeight;

			addChild( htmlLoader );
			htmlLoader.stage.nativeWindow.activate();
			htmlLoader.load( new URLRequest("testBlank.html") );

			var host:CustomHost = new CustomHost();
			htmlLoader.htmlHost=host;
		}

	}
}


----------------
永井勝則:
himco.jp :

tonkotu
Åê¹ÆNo.43814
投稿日時: 2009-10-30 19:53
常連
居住地:
投稿: 62
使用環境:
windows-XP,flashCS3,AIR1.0
Re: AIRブラウザでのhtmlページリンク指定(blank)
うおおーー、すごい、別ウィンドウで開きました。
作りこめば独自の面白いブラウザとか本当にAIRだけでできそうですね。

タブブラウザとかもできそうな気がします。

有難うございました!!

>Flash CS4、AIR1.5(でしたっけ?)です。
Flash CS4はAIR1.5だったと思います。いいですねcs4 自分も買わないと・・・(汗


----------------
flashCS3

スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を
 
Copyright (C) 2003 FLASH-japan. All rights reserved.
Powered by Xoops