Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Помогите разобраться с Drag_and_Drop и открытием внешнего swf (http://www.flasher.ru/forum/showthread.php?t=178331)

nayanov 19.04.2012 12:56

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

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

Код AS3:

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

Код AS3:

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

ну и сделайте все в одном классе:
Код AS3:

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, дописал несколько нужных строк все заработало так как надо.


Часовой пояс GMT +4, время: 23:44.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.