カスタムクラス内でURLLoaderへ登録したイベントリスナー関数が呼ばれない

このQ&Aのポイント
  • カスタムクラス内でURLLoaderへ登録したイベントリスナー関数が呼ばれず、問題が発生しています。
  • 問題が発生しているクラスでは、URLLoaderのイベントリスナーが正しく動作しないことが確認されています。
  • do関数が呼ばれた場合に、URLLoaderに追加したイベントハンドラが実行されないという問題が発生しています。
回答を見る
  • ベストアンサー

カスタムクラス内でURLLoaderへ登録したイベントリスナー関数が呼ばれない

表題のように package{ import flash.events.*; import flash.net.*; import flash.utils.*; class myclass{ private loader:URLLoader; public function myclass(){} public function do():void { loader = new URLLoader(); loader.dataFormat = URLLoaderDataFormat.VARIABLES; loader.load(new URLRequest("test.php")); loader.addEventListener( Event.COMPLETE, handleComp ); } private function handleComp(event:Event):void { //呼ばれない } } } といったようなクラスを作ったとして、上のクラスでのdo関数を呼んだ場合にloaderに追加したイベントハンドラが実行されません。

  • Flash
  • 回答数2
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • cspl
  • ベストアンサー率83% (55/66)
回答No.2

#1です。 下記、Lが小文字になっていたので、大文字に訂正してください。 ----------------- contentloaderInfo ----------------- ↓ ----------------- contentLoaderInfo -----------------

bh5375
質問者

お礼

自己解決しました

その他の回答 (1)

  • cspl
  • ベストアンサー率83% (55/66)
回答No.1

-------------------------------------------------- loader.load(new URLRequest("test.php")); loader.addEventListener( Event.COMPLETE, handleComp ); -------------------------------------------------- ↓ -------------------------------------------------- loader.contentloaderInfo.addEventListener( Event.COMPLETE, handleComp ); loader.load(new URLRequest("test.php")); -------------------------------------------------- です。 Event.COMPLETEはLoaderInfoクラスから取ります。 それと、動作はすると思いますが、loadはaddEventListenerを定義した後に呼び出すようにしましょう。

関連するQ&A

  • 下記のような関数から外部からの戻り値を返したいのですが

    下記のような関数から外部からの戻り値を返したいのですが 良い方法はございませんでしょうか? 例えば trace( test( "test" ) ); このように戻り値を返す関数にしたいです。 function test( strData:String ):String { var variables:URLVariables = new URLVariables(); variables.data = strData; var request:URLRequest = new URLRequest(); request.url = "http://test.asp"; request.data = variables; request.method = URLRequestMethod.POST; var loader = new URLLoader(); loader.addEventListener(Event.COMPLETE , function(event) { var retValue:String = new String(event.target.data); }); loader.load(request); //return ???? }

    • ベストアンサー
    • Flash
  • AS3 asファイルでイベントリスナが登録できない

    外部(as)ファイルに以下のようなメソッドを記述していたんですが // ***** エラー行 ***** とコメントアウトしている場所で、『型が見つからないか、コンパイル時定数ではありません。:Event。』というエラーが出てしまいます。 外部ファイルではイベントリスナは登録できないのでしょうか? 良かったら回答の方、よろしくお願いします。 public function jsonRead(){ var urlLoader:URLLoader = new URLLoader(); urlLoader.dataFormat = URLLoaderDataFormat.TEXT; urlLoader.addEventListener(Event.COMPLETE, jsonReadHandler); urlLoader.load(new URLRequest("json_text.json") ); function jsonReadHandler(e:Event):void{ // ***** エラー行 ***** var json_data:String = URLLoader(e.currentTarget).data; // ターゲットからテキストデータを取得して変数に代入 var json_decode_data:Object = JSON.parse(json_data); // 読み込んだテキストをjsonオブジェクトにデコード this.pages_of_book = Number(json_decode_data[0].number); trace(this.pages_of_book); } // jsonReadHandler() } // jsonRead()

    • ベストアンサー
    • Flash
  • AS3.0 カスタムクラスのMCをMainで呼び出

    AS3.0 カスタムクラスのMCをMain.asで呼び出ししたいのですが、上手く機能しません。 どうして動かないのか具体的に教えてもらえると助かります。 エラー・コード:Main.as, Line 20 1180: Call to a possibly undefined method createBox. 【Main.as】 package{ import flash.display.*; import flash.events.Event; import flash.events.TimerEvent; import flash.utils.Timer; import boxClass; public class Main extends Sprite{ //property private var item:boxClass; //constractor public function Main(){ box(); } //method public function box():void{ item=new boxClass(); item.createBox(this); } } } 【boxClass.as】 package{ import flash.display.*; import flash.events.Event; public class boxClass extends MovieClip{//boxクラス //property private var thisClass:Object; //constractor public function boxClass():void{} //method public function createBox(tm:MovieClip):void{ thisClass = this; trace("テスト"); var mc:boxMC=new boxMC(); thisClass.addChild(mc); } } }

  • 外部txtファイルからの変数のロード

    ほぼ独学でフラッシュを始めることになりました。手始めに教科書に載っている外部ファイルから変数をロードするサンプルプログラムを実践してみようとしているのですが、以下の内容でムービープレビューをすると 1120 未定義のプロパティdate_txt.text へのアクセスです 1120 未定義のプロパティweather_txt へのアクセスです 1120 未定義のプロパティcomment_txt へのアクセスです とエラーが3つ表示されます。 作業環境:Flash CS3/WinVista/AS3.0 ※フラッシュ「p166.fla」内容 ステージ上にダイナミックテキスト「date」「weather」「comment」設置 ※「p166.fla」アクションスクリプト import flash.net.URLRequest; import flash.net.URLLoader; flash.net.URLLoaderDataFormat; flash.net.URLVariables; flash.events.Event; var loader:URLLoader = new URLLoader(); loader.dataFormat = URLLoaderDataFormat.VARIABLES; loader.addEventListener(Event.COMPLETE,completeHandler); loader.load(new URLRequest("data.txt")); function completeHandler(event:Event):void{ var vars:URLVariables = event.target.data; date_txt.text = vars.date; weather_txt.text = vars.weather; comment_txt.text = vars.comment; } ※外部txtファイル「data.txt」内容 date=5月24日&weather=晴れ&comment=今日は買い物に行きました 大変お手数ですがご指導お願いします。

    • ベストアンサー
    • Flash
  • AS3.0 写真の切り替え

    調べても調べても漠然とした状態が続いてるので質問させていただきました。 まず、サンプルとしてこんなようなものが作りたいんです。 http://www.subaru-sls.co.jp/ ここの企業みたいな写真が一定時間でその場所その場所に移動していくというのを作りたいのですが、今後のことを考え、タイムラインにASを組むのではなく、外部AS(ドキュメントクラス?)だけで作りたいのです。 因みに写真などの配置はなんとかできたのですが、写真が切り替わるのがまったくわかりません。 こちらが現状況のコードになります。↓ package { import flash.display.Sprite; import flash.display.Loader; import flash.net.URLRequest; import flash.display.Shape; import flash.events.TimerEvent; import flash.utils.Timer; import flash.events.MouseEvent; import flash.display.Bitmap; [SWF(width = "550",height = "400")] public class main extends Sprite { //プロパティ var mc01:Sprite = new Sprite(); var mc02:Sprite = new Sprite(); var mc03:Sprite = new Sprite(); var imgUrl01:String = "kabegami1.jpg"; var imgUrl02:String = "kabegami2.jpg"; var imgUrl03:String = "kabegami3.jpg"; var onUrl01:URLRequest = new URLRequest(imgUrl01); var onUrl02:URLRequest = new URLRequest(imgUrl02); var onUrl03:URLRequest = new URLRequest(imgUrl03); var img01:Loader = new Loader(); var img02:Loader = new Loader(); var img03:Loader = new Loader(); var square01:Shape = new Shape(); var square02:Shape = new Shape(); var square03:Shape = new Shape(); var i:int = 0; var timer:Timer = new Timer(20); //コンストラクタ public function main () { init (); } //メソッド private function init () { square01.graphics.beginFill (0x000000); square02.graphics.beginFill (0x000000); square03.graphics.beginFill (0x000000); square01.graphics.drawRect (10, 10, 330, 380); square02.graphics.drawRect (350, 10, 110, 380); square03.graphics.drawRect (470, 10, 70, 380); square01.graphics.endFill (); square02.graphics.endFill (); square03.graphics.endFill (); img01.mask = square01; img02.mask = square02; img03.mask = square03; img01.load (onUrl01); img02.load (onUrl02); img03.load (onUrl03); addChild (square01); addChild (square02); addChild (square03); addChild (img01); addChild (img02); addChild (img03); timer.addEventListener (TimerEvent.TIMER,onTimer); timer.start (); img01.addEventListener (MouseEvent.MOUSE_DOWN,mouseDownHandler); } private function mouseDownHandler (event:MouseEvent):void { } private function onTimer (event:TimerEvent):void { i++; img01.alpha -= 0.01; } } } 長文になってしまいましたが、どうかご教授お願いします。

    • ベストアンサー
    • Flash
  • as3 ムービークリップにビットマップデータを挿入するクラスがうまくい

    as3 ムービークリップにビットマップデータを挿入するクラスがうまくいかない 上記のとおりなんですが、 前提として ■ライブラリにjpgを一枚読み込んで、Photoというクラス名でリンケージしてあります。 ■ステージにmcというムービークリップを配置しています。 mcにビットマップ化したjpgをaddchildしたかったので、 メインフレームに下記を書きました。 -------------------------------------------------------- var name_str:String = "Photo"; var myClass:Class = Class(getDefinitionByName(name_str)); var bmd:BitmapData = new myClass(0, 0); var bm:Bitmap = new Bitmap(bmd); bm.pixelSnapping = PixelSnapping.ALWAYS; bm.smoothing = true; mc.addChild(bm); -------------------------------------------------------- ※今後動的に生成するのでクラス名は変数にしています。 これは問題なく行きました。 上記を外部クラス化したかったので、 下記のようにしました。 ■PhotoClass ---------------------------------------------------------------------- package { import flash.display.MovieClip; import flash.events.Event; import flash.display.Bitmap; import flash.display.BitmapData; import flash.utils.getDefinitionByName; import flash.display.PixelSnapping; public class PhotoClass extends Bitmap { private var myClass:Class;//クラス名 private var bmd:BitmapData; private var bm:Bitmap; //コンストラクタ public function PhotoClass(_name:String) { myClass = Class(getDefinitionByName(_name)); bmd = new myClass(0, 0); bm = new Bitmap(bmd); bm.pixelSnapping = PixelSnapping.ALWAYS; bm.smoothing = true; init(); } public function init():Bitmap { return bm; } } } ---------------------------------------------------------------------- ■メインフレーム var photoAdd:Bitmap = new PhotoClass("Photo"); mc.addChild(photoAdd); これがうまくいきません。 エラーはないのですが、ちゃんとmcに画像が読み込まれません。。。。 ご教授いただければと思います!

    • ベストアンサー
    • Flash
  • AS3.0 イベントリスナーについて

    お世話になります。 簡単なflashアニメを作っています。 flash cs6 ActionScript3.0使用で、歴1ヶ月未満の初心者です。 1フレーム目に外部swfファイルを以下のように読み込んで再生させています。 var riku:URLRequest = new URLRequest("logoAnime.swf"); var yomu:Loader = Loader = new Loader(); yomu.load(riku); openingMc.addChild(yomu); 再生が終ったら、2フレーム目に移りたいのですが、具体的に どのようなコードを書いたら良いのでしょうか? 今まで色々な参考書やウェブサイトを見て勉強し、イベントリスナーメソッドを使ってマウスイベントでラベルを指定したページに移動、などはできるのですが、外部swfの再生が終ったら..となると混乱してエラー連発してしまいます。 イベントリスナーを使うのですよね? いまいち仕組みがまだ理解できていないので、丸投げのようになってしまい恐縮ですが、ご教授ください。 参考になるウェブサイト・過去回答を教えて頂くだけでも良いので、どうぞよろしくお願い致します。

    • ベストアンサー
    • Flash
  • 外部から読み込んだ画像にリンクをつけたい

    ActionScript3.0についての質問です。 ボタンをクリックした時に外部から画像を読み込んで、 読み込んだ画像にそれぞれに外部リンクをつけたいのですが、 リンクのつけ方が分かりません。 ボタンをクリックして外部から画像を読み込むところまではできたのですが、 その画像にリンクをつけるところで困っています。 超初心者ですので、できるだけ現状のプログラムを生かして変更したいのですが… どなたか分かる方がいらっしゃいましたら、教えていただきたいです。 よろしくお願いいたします。 【Main.as】 package { import flash.display.Sprite; import flash.display.MovieClip; import flash.events.Event; import flash.events.MouseEvent; import flash.display.Loader; import flash.display.LoaderInfo; import flash.net.URLRequest; import flash.display.SimpleButton; public class Main extends Sprite { private var contentMC:MovieClip; private var contentLoader:Loader; //コンストラクタ public function Main(){ //外部ファイルを配置するムービークリップの生成 contentMC = new MovieClip(); contentMC.x=0; contentMC.y=0; addChild(contentMC); //Loaderオブジェクトを生成 contentLoader = new Loader(); contentMC.addChild(contentLoader); //ボタン処理 my1_btn.addEventListener(MouseEvent.CLICK,my1Handler); my2_btn.addEventListener(MouseEvent.CLICK,my2Handler); my3_btn.addEventListener(MouseEvent.CLICK,my3Handler); } //各ボタンをクリックしたときに外部ファイルを読み込む private function my1Handler(evt:MouseEvent):void{ var url="img/flashimg01.jpg"; loadContent(url); } private function my2Handler(evt:MouseEvent):void{ var url="img/flashimg02.jpg"; loadContent(url); } private function my3Handler(evt:MouseEvent):void{ var url="img/flashimg03.jpg"; loadContent(url); } //外部ファイル読込 private function loadContent(url){ var req:URLRequest = new URLRequest(url); contentLoader.load(req); } } }

    • ベストアンサー
    • Flash
  • PHPの取得情報をFlashで表示する方法

    flashについて質問です。 time.phpに現在の時間を取得する <?php echo date("Y/m/d"); ?> を書いて保存し、 それをtimeLoad.as(AS 3.0)をドキュメントクラスとするflash上で表示したいのですが、 package{ import flash.display.MovieClip; import flash.text.TextField; import flash.text.Font; import flash.text.TextFieldAutoSize; import flash.text.TextFormat; import flash.net.URLLoader; import flash.net.URLRequest; import flash.net.URLVariables; public class timeLoad extends Sprite{ private var tf:TextField; public function timeLoad():void{ var myRequest:URLRequest = new URLRequest("time.php"); var myLoader:URLLoader = new URLLoader(); myLoader.load(myRequest); tf = new TextField(); tf.defaultTextFormat = new TextFormat("Helvetica",10,0x000000); tf.x = 0; tf.y = 0; tf.text = myLoader.data; addChild(tf); } } } tfの内容が2011.1.1などになるのが目的です。 swfファイル、swfを埋め込んだhtmlファイル、phpファイルは同じ階層にあります。 php側flash側の訂正点をご指摘いただけると嬉しいです。

    • ベストアンサー
    • Flash
  • ActionScript3.0によるPHPへの変数の送信について

    はじめまして。 現在、FlashとPHPを用いたシステムを制作中なのですが、FlashからPHPへの変数の送信でつまづきました。 ネット上で調べてみてもAS3で解説しているサイトはほとんど見つからず、見つかっても自分の理解が悪いのかうまく行かない状況です。 状況としては下記のようなAS3とPHPを実行しています。 AS3から値をPOSTしてPHPで表示、それを読み取ってFlashでtraceしています。traceで1234は返ってきているのですが、PHP側ではcomp=しか表示されません。初歩的なミスだと思いますが、どこが悪いのかアドバイスいただければ幸いです。 よろしくお願いします。 環境 Flash CS3 Apache2.2 PHP5.2.6 ソース AS3 System.useCodePage = true; var request:URLRequest = new URLRequest ( "http://localhost/sample/FlashToPHP.php" ); //PHPへPOST送信 request.method = URLRequestMethod.POST; var variables:URLVariables = new URLVariables(); //送る変数 variables.num = "1234"; request.data = variables; var loader:URLLoader = new URLLoader (request); loader.dataFormat = URLLoaderDataFormat.VARIABLES; loader.addEventListener(Event.COMPLETE, onComplete); loader.load(request); function onComplete (event:Event):void{ var vars:URLVariables = new URLVariables( event.target.data ); trace( vars.comp ); } PHP <?php //変数を受け取る $comment = $_POST['num']; $comp = $comment; echo "comp=".$comp; ?>

    • ベストアンサー
    • Flash

専門家に質問してみよう