新しいメッセージ - 解決した解決方法AS3を使用してドラッグアンドドロップオブジェクトに外部画像を読み込む方法は?
これは、私がムービークリップに外部画像を読み込んでドラッグアンドドロップするために使用したものです。 フィードバック部分は古いコードとほとんど同じです。
var holdermc_Arr:Array = new Array(4);
for(var i:uint = 0; i < holdermc_Arr.length; i++)
{
holdermc_Arr[i] = this["panel" + (i+1) + "_mc"];
var myLoader:Loader = new Loader();
var fileRequest:URLRequest = new URLRequest("images/" + (i+1) + ".jpg");
myLoader.load(fileRequest);
holdermc_Arr[i].addChild(myLoader);
holdermc_Arr[i].addEventListener(MouseEvent.MOUSE_DOWN, pickUp);
holdermc_Arr[i].addEventListener(MouseEvent.MOUSE_UP, dropIt);
holdermc_Arr[i].buttonMode = true;
}
var startX:Number;
var startY:Number;
var counter:Number = 0;
function pickUp(event:MouseEvent):void {
startX = event.currentTarget.x;
startY = event.currentTarget.y;
setChildIndex(MovieClip(event.currentTarget),numChildren-1);
event.currentTarget.startDrag();
reply_txt.text = "";
}
OLD MESSAGEベロー
これは私が取得しています現在のエラーと私の最新の試みです。
複数のドラッグ可能なムービークリップを追加する方が簡単であるため、以前の試みのコードで作業したいと思っています。
しかし、どちらのコードでも、基本的な問題と思われるのは、「ローダー」のプロパティを正しく設定していないということです。
例へのリンクが必要かどうかを教えてください。
エラーは以下の通りです:
ReferenceError: Error #1069: Property dropTarget not found on flash.display.Loader and there is no default value. at cs5test_fla::MainTimeline/ReleaseToDrop()
コードは以下の
var myLoader:Loader = new Loader();
panel1_mc.addChild(myLoader);
var url:URLRequest = new URLRequest("uploadedImages/photo_1.jpeg");
myLoader.load(url);
var startX:Number;
var startY:Number;
var counter:Number = 0;
panel1_mc.addEventListener(MouseEvent.MOUSE_DOWN, ClickToDrag);
function ClickToDrag(event:MouseEvent):void
{
panel1_mc.startDrag();
startX = event.target.x;
startY = event.target.y;
reply_txt.text = "";
event.target.parent.addChild(event.target);
}
stage.addEventListener(MouseEvent.MOUSE_UP, ReleaseToDrop);
function ReleaseToDrop(event:MouseEvent):void
{
panel1_mc.stopDrag();
var myTargetName:String = "target" + event.target.name;
var myTarget:DisplayObject = getChildByName(myTargetName);
if (event.target.dropTarget != null && event.target.dropTarget.parent == myTarget){
reply_txt.text = "Good Job!";
event.target.x = myTarget.x;
event.target.y = myTarget.y;
event.target.removeEventListener(MouseEvent.MOUSE_DOWN, ClickToDrag);
event.target.removeEventListener(MouseEvent.MOUSE_UP, ReleaseToDrop);
event.target.buttonMode = false;
counter++;
} else {
reply_txt.text = "Try Again!";
event.target.x = startX;
event.target.y = startY;
}
if(counter == 1){
reply_txt.text = "Congrats, you're finished!";
}
}
OLDER MESSAGEベロー
である私はまだ苦労しています。
私はこのすべてに慣れているので、私はそれをつかむことができる最高のものを結びつけています。
私が扱おうとしているActionScriptは一番下にあります。
誰かがこのコードを見て、次のエラーを出さずに外部画像をドラッグ可能なムービークリップに読み込む方法を教えてもらえたら、本当にありがたいです。
ReferenceError: Error #1069: Property startDrag not found on flash.display.Loader and there is no default value. at dragdropDilema_fla::MainTimeline/pickUp() ReferenceError: Error #1069: Property stopDrag not found on flash.display.Loader and there is no default value. at dragdropDilema_fla::MainTimeline/dropIt()
私は、単純なVARローダーを使用しようとしましたが、私はエラーに見ることができるもののために、私はロードされたイメージではなく、現在であるドラッグ可能なムービークリップで作業するのstartDragプロパティを設定する必要があります場所??
私はそれぞれのために、次を使用していた場合、私はちょうどシンプルされているだろうと思った:
var myLoader:Loader = new Loader();
imageHolder.addChild(myLoader);
var url:URLRequest = new URLRequest("uploadedImages/photo_1.jpeg");
myLoader.load(url);
、次にような何か:
square_mc.imageHolder.addChild(myLoader);
をしかし、私はエラーを取得することを行うときとにかく私が画像をクリックすると。
ここにコード全体があります。オブジェクトがターゲットを満たしたときにカウントされ、最後までメッセージが出力されます。
panel1_mc.addEventListener(MouseEvent.MOUSE_DOWN, pickUp);
panel1_mc.addEventListener(MouseEvent.MOUSE_UP, dropIt);
panel1_mc.buttonMode = true;
var startX:Number;
var startY:Number;
var counter:Number = 0;
function pickUp(event:MouseEvent):void {
startX = event.target.x;
startY = event.target.y;
event.target.startDrag(true);
reply_txt.text = "";
event.target.parent.addChild(event.target);
}
function dropIt(event:MouseEvent):void {
event.target.stopDrag();
var myTargetName:String = "target" + event.target.name;
var myTarget:DisplayObject = getChildByName(myTargetName);
if (event.target.dropTarget != null && event.target.dropTarget.parent == myTarget){
reply_txt.text = "Good Job!";
event.target.x = myTarget.x;
event.target.y = myTarget.y;
event.target.removeEventListener(MouseEvent.MOUSE_DOWN, pickUp);
event.target.removeEventListener(MouseEvent.MOUSE_UP, dropIt);
event.target.buttonMode = false;
counter++;
} else {
reply_txt.text = "Try Again!";
event.target.x = startX;
event.target.y = startY;
}
if(counter == 1){
reply_txt.text = "Congrats, you're finished!";
}
}
ありがとう。
こんにちはAntonio、あなたの質問にあなたのコードを追加できますか?もちろん、関連するビットだけ、thanks.Rob – robertp
Rob。私は実験しているFLAへのリンクを張っています。アクションスクリプトは半ページ以下で、205 kbしかありません。 – antoniog447
ヘルプをドラッグするのもお探しですか?以前投稿したものから、エラーが出てきているように見えます。 –