- ベストアンサー
Flash外部から読み込んだ画像ファイル(png)の扱いについて
- swfと同じフォルダに置いた画像ファイル(test.png)を読み込んだ後、ドラッグ&ドロップや生成などの操作する方法を知りたい。
- 画像ファイルを外部から読み込んだ後、自由に操るには何か変換する必要があるのか、それともクラス化することができるのか知りたい。
- pictLdr1.load(pictURLReq1);というコードで画像ファイルを読み込み、pictLdr1.addChild(haikei);で表示し、pictLdr1.xとpictLdr1.yで座標を設定している。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
現在は(A) haikei(親)--pictLdr1(子) となっています。 これを(B) haikei(親)--空のSpriteまたはMovieClip(子)--pictLdr1(孫) とする事で、haikeiは動かなくなります。 スクリプトにはpictLdr1の親をstartDragしなさいと記述してあります。 (A)の場合pictLdr1の親はhaikeiなのでhaikeiごと動きます。 (B)の場合pictLdr1の親は空のSpriteなのでpictLdr1だけが動いてるように見えます。 もっとスマートなやり方があるのかもしれませんが、これで動きます。 var pictLdr1:Loader = new Loader(); var pictURL1:String = "test.png"; var pictURLReq1:URLRequest = new URLRequest(pictURL1); pictLdr1.load(pictURLReq1); var hoge:Sprite = new Sprite();///////////// haikei.addChild(hoge);///////////// hoge.addChild(pictLdr1);///////////// pictLdr1.x = 10; pictLdr1.y = 10; pictLdr1.addEventListener(MouseEvent.MOUSE_DOWN, pickup); pictLdr1.addEventListener(MouseEvent.MOUSE_UP, place); function pickup( event:MouseEvent ):void { event.target.parent.startDrag(); } function place( event:MouseEvent ):void { event.target.parent.stopDrag( ); }
その他の回答 (1)
- an631
- ベストアンサー率82% (28/34)
ステージにhaikeiムービークリップがあると考えて良いのですよね? haikeiムービークリップごと動いてしまいますが下記のスクリプトでドラッグ&ドロップはできます。 haikeiごと動くのが良くないなら、haikeiの中に空のムービークリップ等を配置して調整してください。 var pictLdr1:Loader = new Loader(); var pictURL1:String = "test.png"; var pictURLReq1:URLRequest = new URLRequest(pictURL1); pictLdr1.load(pictURLReq1); haikei.addChild(pictLdr1); pictLdr1.x = 10; pictLdr1.y = 10; pictLdr1.addEventListener(MouseEvent.MOUSE_DOWN, pickup); pictLdr1.addEventListener(MouseEvent.MOUSE_UP, place); function pickup( event:MouseEvent ):void { event.target.parent.startDrag()///////////// } function place( event:MouseEvent ):void { event.target.parent.stopDrag( );//////////// }
補足
ありがとうございます。 無事に動きました。 haikeiごと動かしたくない場合の「空のムービークリップを配置」することがよくわかりませんのでよろしかったら教えてほしいです。 よろしくお願いします。
お礼
丁寧に解説していただきありがとうございます。 当方、階層のことをよく理解していなかったようです。 勉強になりました。