PDA

Просмотр полной версии : Помогите разобраться с Drag_and_Drop и открытием внешнего swf


nayanov
19.04.2012, 12:56
начал знакомство с flash и as3, поскольку потребовалось на работе.
Мне надо сделать чтобы при переносе элемента детали (.png) c панели элементов запускался из вне swf.
По урокам разобрался с Drag_and_Drop и запуском внешнего swf, а вот связать воедино не получается.
Помогите пожалуйста разобраться, если возможно! Заранее огромное спасибо!

Запуск swf написано в первом кадре.
import flash.net.URLLoader;

var myLoader:Loader = new Loader ();

myLoader.x=50;
myLoader.y=50;

korpus.addEventListener(MouseEvent.CLICK, korpus_bk);

function korpus_bk(myevent:MouseEvent):void
{
var myURL:URLRequest=new URLRequest("swf/korpus_buksa.swf");
myLoader.load(myURL);
addChild(myLoader);
}

Drag_and_Drop в отдельном файле .as

package bk.file {

import flash.display.MovieClip;
import flash.events.MouseEvent;

public class korpus extends MovieClip {

public function korpus()
{
buttonMode = true;
addEventListener( MouseEvent.MOUSE_DOWN, down );
}
protected function down ( event:MouseEvent ) :void
{
parent.addChild ( this );
startDrag();
stage.addEventListener ( MouseEvent.MOUSE_UP, stageUp );
}

protected function stageUp ( event:MouseEvent ) :void
{
stage.removeEventListener ( MouseEvent.MOUSE_UP, stageUp );
stopDrag();

if(dropTarget)
{
if( dropTarget.parent.name == "korz")
{
scaleX = scaleY = 0.5;
alpha = 0.5;
y = stage.stageHeight - height - 300;
buttonMode = false;
removeEventListener(MouseEvent.MOUSE_DOWN, down);

}
}
}



}
}

PainKiller
19.04.2012, 21:36
ну и сделайте все в одном классе:

package bk.file {

import flash.display.MovieClip;
import flash.events.MouseEvent;

public class korpus extends MovieClip {

var myLoader:Loader;
public function korpus()
{
buttonMode = true;
addEventListener( MouseEvent.MOUSE_DOWN, down );
myLoader = new Loader ();
myLoader.x=50;
myLoader.y=50;
}
protected function down ( event:MouseEvent ) :void
{
parent.addChild ( this );
startDrag();
stage.addEventListener ( MouseEvent.MOUSE_UP, stageUp );
var myURL:URLRequest=new URLRequest("swf/korpus_buksa.swf");
myLoader.load(myURL);
addChild(myLoader);
}

protected function stageUp ( event:MouseEvent ) :void
{
stage.removeEventListener ( MouseEvent.MOUSE_UP, stageUp );
stopDrag();

if(dropTarget)
{
if( dropTarget.parent.name == "korz")
{
scaleX = scaleY = 0.5;
alpha = 0.5;
y = stage.stageHeight - height - 300;
buttonMode = false;
removeEventListener(MouseEvent.MOUSE_DOWN, down);

}
}
}



}
}

nayanov
20.04.2012, 10:22
Спасибо огромное!!! я примерно так и сделал, только вставил код во второй If, дописал несколько нужных строк все заработало так как надо.