ブラウザでダウンロード ![]() メインウインドウのコードと PDF の2次ウインドウのコードは AIR のウインドウ (5) -- 2次ウインドウでHTMLコントロール HTML -- 簡易ブラウザ![]() ブラウザとして利用するにはさすがにいろいろ問題があります。 まず、リンクが新しいウインドウを開くようになっていると動作しません。 デフォルトの target="_self" である必要があります。 また、何をもって複雑かは断定して言えませんが、 感覚的に複雑なページは表示できない場合があります。 さらに、初期ページが変更されてから、2次ウインドウを x ボタンで 閉じようとすると、HTMLLoader の focusOut でエラーになります。 これはバグと思われますが、タイトルの「閉じるボタン」を使用せずに ウインドウ内にボタンを置いて close すると発生しません。 closing イベント内からいろいろやってみましたが、どうやっても タイトルのボタンからはエラーになります その為、このサンプルでは、タイトルの「閉じるボタン」が押された 場合は、closing でデフォルトの処理をキャンセルして、非表示に するようにしています。その為、メインウインドウでもそれを考慮 しています。 ※ 後、ここではタイトルのスキンを変更しています HtmlWindow.mxml
001. <?xml version= "1.0" encoding= "utf-8" ?> 002. <mx:Window 003. xmlns:mx= "http://www.adobe.com/2006/mxml" 004. horizontalAlign= "center" 005. verticalAlign= "middle" 006. type= "normal" 007. systemChrome= "none" 008. transparent= "false" 009. showFlexChrome= "true" 010. alwaysInFront= "false" 011. 012. initialize= "initData();" 013. creationComplete= "initApp1()" 014. applicationActivate= "initApp2()" 015. closing= "endWindow(event)" 016. resize= "webResize(event)" 017. 018. width= "750" 019. height= "550" 020. 021. title= " ブラウザ" 022. styleName= "myTitle" 023. > 024. 025. <mx:Style> 026. .myTitle { 027. titleBarBackgroundSkin: Embed( "gold.png" ); 028. } 029. </mx:Style> 030. 031. <mx:Script> 032. <![CDATA[ 033. 034. import mx.core.*; 035. import mx.events.*; 036. 037. // ********************************************************* 038. // endWindow 039. // ********************************************************* 040. private function endWindow(e:flash.events.Event): void { 041. 042. trace( "[App:closing]" ); 043. 044. // 閉じて終了せずに、非表示にする 045. e.preventDefault(); 046. // minimize しておくと、復帰する時にアクティブにできるので 047. this .minimize(); 048. // 先に minimize しないと、消えない。 049. // 最小化のアニメーションを無くして消したい場合は、 050. // どうしてもタイマーが必要なので 051. this .visible = false ; 052. 053. } 054. 055. // ***************************************************** 056. // HTML コントロール のサイズコントロール 057. // ***************************************************** 058. private function webResize(e:mx.events.ResizeEvent): void { 059. 060. try { 061. web.width = this .width- 2 ; 062. web.height = this .height- 45 - 10 -url.height; 063. } 064. catch (error:Error) { 065. } 066. 067. } 068. 069. // ***************************************************** 070. // 初期処理 071. // ***************************************************** 072. private function initData(): void { 073. 074. web.location = "http://www.google.co.jp" 075. url.text = web.location; 076. 077. } 078. 079. // ********************************************************* 080. // creationComplete 081. // ********************************************************* 082. private function initApp1(): void { 083. 084. trace( "[App:afterDisplay]" ); 085. // web.htmlLoader.navigateInSystemBrowser = true; 086. 087. } 088. 089. // ********************************************************* 090. // applicationActivate 091. // ********************************************************* 092. private function initApp2(): void { 093. 094. trace( "[App:start]" ); 095. 096. } 097. 098. ]]> 099. </mx:Script> 100. 101. <mx:TextInput 102. id= "url" 103. width= "95%" 104. fontSize= "10" 105. /> 106. <mx:HTML 107. id= "web" 108. width= "750" 109. height= "550" 110. location= "{url.text}" 111. /> 112. 113. </mx:Window> |