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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   ActionScript 3.0 特設会議室
     外部imgを読み込みloaderクラスにドラッグイベントを追加したいです
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
samorai
Åê¹ÆNo.39560
投稿日時: 2008-7-15 17:05
新米
居住地:
投稿: 19
使用環境:
winXP,Flash8
外部imgを読み込みloaderクラスにドラッグイベントを追加したいです
いつも勉強させて頂いております。samoraiと申します。

最近AS3を勉強し始めまして、色々と躓いている箇所がありまして、ご教授お願いしたいと思います。

外部imgをステージにロードし、その外部imgをそのままドラッグするような処理をつけたいと思ったのですが、うまくいきません。

Loaderクラスを使い、外部imgをロードしたまでは良かったのですが、ドラッグメソッドはspriteクラスで実装されているようで、Loaderクラスに対してドラッグメソッドを実行するとエラーが起こります。


var img_loader:Loader = new Loader();
var urlreq:URLRequest = new URLRequest("test.jpg");
addChild(img_loader);
img_loader.addEventListener(MouseEvent.MOUSE_DOWN,onDragStart);
img_loader.addEventListener(MouseEvent.MOUSE_UP,onDragStop);
img_loader.load(urlreq);

function onDragStart(evt:Event):void{
    evt.currentTarget.startDrag();//エラー
}
function onDragStop(evt:Event):void{
    evt.currentTarget.stopDrag();//エラー
}


loaderクラスをspriteクラスにキャストしようと試みたのですが、キャスト出来ませんとエラーが出る始末。

これはspriteインスタンスを作り、その中にloaderインスタンスをaddChildし、そのspriteインスタンスに対してドラッグメソッド追加処理をするしかないのでしょうか?

複数の画像をロードする際に、その数分別途インスタンスを作るのは非常に面倒に思いまして。。

初心者ですので、検討外れの事を言っているかもしれませんが、良い解決策がありましたらご教授ください。

よろしくお願い致します。
野中文雄
Åê¹ÆNo.39561
投稿日時: 2008-7-15 17:51
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: 外部imgを読み込みloaderクラスにドラッグイベントを追加したいです
Loaderクラスは、Spriteクラスを継承しませんので、Spriteにキャストできません。また、同じ理由により、Sprite.startDrag()メソッドも使えません。Spriteインスタンスに入れ子にした方が楽に思えますけど...
引用:
samoraiさんは書きました:
var img_loader:Loader = new Loader();
var urlreq:URLRequest = new URLRequest("test.jpg");
var nX:Number = 0;
var nY:Number = 0;
addChild(img_loader);
img_loader.addEventListener(MouseEvent.MOUSE_DOWN,onDragStart);
img_loader.addEventListener(MouseEvent.MOUSE_UP,onDragStop);
img_loader.load(urlreq);

// function onDragStart(evt:Event):void {
function onDragStart(evt:MouseEvent):void {
	// evt.currentTarget.startDrag();//エラー
	evt.currentTarget.
	addEventListener(Event.ENTER_FRAME, xFollowMouse);
	nX = evt.localX;
	nY = evt.localY;
}
function onDragStop(evt:Event):void {
	// evt.currentTarget.stopDrag();//エラー
	evt.currentTarget.
	removeEventListener(Event.ENTER_FRAME, xFollowMouse);
}
function xFollowMouse(eventObject:Event):void {
	var myObject:DisplayObject = 
	DisplayObject(eventObject.currentTarget);
	myObject.x += myObject.mouseX-nX;
	myObject.y += myObject.mouseY-nY;
}

loaderクラスをspriteクラスにキャストしようと試みたのですが、キャスト出来ませんとエラーが出る始末。

これはspriteインスタンスを作り、その中にloaderインスタンスをaddChildし、そのspriteインスタンスに対してドラッグメソッド追加処理をするしかないのでしょうか?

複数の画像をロードする際に、その数分別途インスタンスを作るのは非常に面倒に思いまして。。


----------------
 

samorai
Åê¹ÆNo.39562
投稿日時: 2008-7-15 19:15
新米
居住地:
投稿: 19
使用環境:
winXP,Flash8
Re: 外部imgを読み込みloaderクラスにドラッグイベントを追加したいです
野中様

ご教授ありがとうございます。

spriteに入れ子にした方が確かに楽ですね。。
今後はspriteにloaderをaddChildするようにします。

こうやって考えてみると、javascriptのdomにやはり似ていますね。ちょっと名前とか違うから間違えやすいですけど。。

ありがとうございました


----------------

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

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