|
Beiträge: 8 Registriert: Jan 2012
| 03.01.2012, 15:42
Hallo Zusammen,
ich bin noch Anfänger in Flash und wage gerade meine ersten Schritte und stehe nun vor einem Problem, für das ich keine Lösung finde. Per Klick auf einen Button soll ein Object aus meiner Libary geladen werden. Das klappt auch soweit mit diesem Script:
ActionScript:1 2 3 4 5 6 7 8 9 10 11 12 13 14 | [/script]star_gold.addEventListener(MouseEvent.CLICK, fl_ClickToLoadImageFromLibrary_3);
function fl_ClickToLoadImageFromLibrary_3(event:MouseEvent):void
{
var libImage:star1 = new star1();
var star_g:Bitmap = new Bitmap(libImage);
addChild(star_g);
star_g.x = 835;
star_g.y = 600;
}
|
Nun möchte ich aber das neu geladene Object per Drag und Drop beweglich machen. Dachte ich könnte es folgendermaßen lösen aber das klappt leider nicht:
ActionScript:1 2 3 4 5 6 7 8 9 10 11 12 13 | star_g.addEventListener(MouseEvent.MOUSE_DOWN, fl_ClickToDrag_2);
function fl_ClickToDrag_2(event:MouseEvent):void
{
star_g.startDrag();
}
stage.addEventListener(MouseEvent.MOUSE_UP, fl_ReleaseToDrop_2);
function fl_ReleaseToDrop_2(event:MouseEvent):void
{
star_g.stopDrag();
}
|
Kann mir jmd helfen?
Liebe Grüße |
|
|
Beiträge: 1776 Wohnort: Laimbach 6 1/2 Registriert: Nov 2002
| 03.01.2012, 17:50
Eine möglichkeit wäre.
ActionScript:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | import flash.display.Sprite;
var picHolder:Sprite = new Sprite();
addChild(picHolder);
btn.addEventListener(MouseEvent.CLICK, getPicture);
function getPicture(e:MouseEvent):void
{
var clownImage:Clown = new Clown();
var pC:Bitmap = new Bitmap(clownImage);
picHolder.addChild(pC);
picHolder.x = 55;
picHolder.y = 55;
}
picHolder.addEventListener(MouseEvent.MOUSE_DOWN, startDragC);
function startDragC(e:MouseEvent):void
{
e.target.startDrag();
}
picHolder.addEventListener(MouseEvent.MOUSE_UP, stopDragC);
function stopDragC(e:MouseEvent):void
{
e.target.stopDrag();
}
|
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muss erst gehen lernen" |
|
|
Beiträge: 8 Registriert: Jan 2012
Themenautor/in
| 03.01.2012, 18:33
Vielen Danke für die schnelle Antwort.
Konnte es für mein Script umsetzen und es funktioniert. Kann es zwar noch nicht ganz nachvollziehen, aber werd es versuchen.
Gibt es eine Möglichkeit, dass er nun jedes Mal ein neues Objekt erzeugt wenn ich den EventListener benutze? Im Moment ist es ja so, dass er das selbe Objekt dann wieder auf den Ursprungsort setzt, wenn ich ihn erneut betätige. |
|
|
Beiträge: 1776 Wohnort: Laimbach 6 1/2 Registriert: Nov 2002
| 03.01.2012, 19:36
Ja gibt es, ist aber ein wenig Tricky, evtl. nicht einfach für Dich nachvollziehbar.
Vielleicht erklärst Du mal, wie Du Dir das vorgestellt hast.Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muss erst gehen lernen" |
|
|
Beiträge: 8 Registriert: Jan 2012
Themenautor/in
| 04.01.2012, 10:31
Im Grunde möchte ich mit einem Klick auf einen Button ein Objekt erstellen und das beliebig oft.
Hab hier mal ein Beispiel, wie ich mir das vorstelle:
http://browse.deviantart.com/?q=christmas&order=9&offset=624#/dfstqd
Hier klickt man auf die Farbfelder und unten wird dann das ensprechende Objekt erzeugt. Das ist mein Ziel.
Edit: Ich sehe gerade, dass er in diesem Beispiel auch immer nur ein Objekt erzeugt.. Aber vllt hilft es dir, dir vorzustellen was ich vorhabe.
Liebe Grüße |
Geändert von hahe.frie am 04.01.12 um 10:34 Uhr | |
|
|
Beiträge: 1776 Wohnort: Laimbach 6 1/2 Registriert: Nov 2002
| 04.01.2012, 13:26
Ja vorstellen kann ich mir das schon, aber es gibt eben sehr viele Wege das zu lösen.
Also wie soll es sein, wie im Beispiel-Link immer nur ein Objekt, der selben Art?Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muss erst gehen lernen" |
|
|
Beiträge: 8 Registriert: Jan 2012
Themenautor/in
| 04.01.2012, 13:31
Am liebsten wäre es mir wenn man mehrere Objekte der selben Art hätte.
Beispiel: Man klickt auf einen Button und es erscheint eine rote Kugel. Man klickt wieder drauf und es erscheint eine weitere Rote Kugel. |
|
|
Beiträge: 1776 Wohnort: Laimbach 6 1/2 Registriert: Nov 2002
| 04.01.2012, 13:39
Das ist eigentlich einfach, wenn Du aus dem Bitmap einen MovieClip machst.
ActionScript:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | import flash.display.Sprite;
var picHolder:Sprite = new Sprite();
addChild(picHolder);
btn.addEventListener(MouseEvent.CLICK, getPicture);
function getPicture(e:MouseEvent):void
{
var pC:Symbol = new Symbol();
picHolder.addChild(pC);
pC.x = 55;
pC.y = 55;
}
picHolder.addEventListener(MouseEvent.MOUSE_DOWN, startDragC);
function startDragC(e:MouseEvent):void
{
e.target.startDrag();
}
picHolder.addEventListener(MouseEvent.MOUSE_UP, stopDragC);
function stopDragC(e:MouseEvent):void
{
e.target.stopDrag();
}
|
Symbol ist der MovieClip vom Bitmap.Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muss erst gehen lernen" |
|
|
Beiträge: 8 Registriert: Jan 2012
Themenautor/in
| 04.01.2012, 21:04
Es funktioniert! Vielen vielen Dank nochmals! :) |
|
|
Beiträge: 8 Registriert: Jan 2012
Themenautor/in
| 05.01.2012, 11:30
Eine Frage hätte ich noch:
Und zwar möchte ich Objekte wie mit einem Papierkorb entfernen können. Hab mir dafür eine Fläche erstellt, diese als MC definiert und mit folgendem Script gearbeitet:
ActionScript:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | red_btn.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
red_btn.addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
picHolder.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
picHolder.addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
function mouseDownHandler(evt:MouseEvent):void {
var object = evt.target;
object.useHandCursor = true;
object.startDrag();
}
function mouseUpHandler(evt:MouseEvent):void {
var obj = evt.target;
var target = obj.dropTarget;
if (target != null && target.parent == blue_btn)
{
picHolder.parent.removeChild(picHolder);
}
obj.stopDrag();
}
|
Funktioniert auch. Problem ist nur, dass er nun alle erstellten Childs löscht und es soll immer nur das Child gelöscht werden was auf den MC gezogen wurde. |
|
|
Beiträge: 8 Registriert: Jan 2012
Themenautor/in
| 07.01.2012, 14:33
Habs jetzt folgendermaßen gelöst:
ActionScript:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | import flash.display.Sprite;
var picHolder01:Sprite = new Sprite();
addChild(picHolder01);
star_silver.addEventListener(MouseEvent.CLICK, getPicture01);
function getPicture01(e:MouseEvent):void
{
var pC01:star_silver_symbol = new star_silver_symbol();
picHolder01.addChild(pC01);
pC01.x = 55;
pC01.y = 55;
}
picHolder01.addEventListener(MouseEvent.MOUSE_DOWN, startDrag01);
function startDrag01(e:MouseEvent):void{
var object = e.target;
object.useHandCursor = true;
object.startDrag();
}
picHolder01.addEventListener(MouseEvent.MOUSE_UP, stopDrag01);
function stopDrag01(e:MouseEvent):void {
var obj = e.target;
var target = obj.dropTarget;
if (target != null && target.parent == delete_1 )
{
obj.visible = false;
}
obj.stopDrag();
}
|
So ist es zwar nicht gelöscht, aber auch nicht mehr zu sehen :) |
|
|
Beiträge: 1776 Wohnort: Laimbach 6 1/2 Registriert: Nov 2002
| 09.01.2012, 07:55
Sorry war beschäftigt.
das müsste doch gehen.
ActionScript:1 2 3 4 5 | if (target != null && target.parent == delete_1 )
{
//obj.visible = false;
picHolder.removeChild(obj);
}
|
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muss erst gehen lernen" |
|
|
Beiträge: 8 Registriert: Jan 2012
Themenautor/in
| 09.01.2012, 08:16
Ja das klappt! Vielen Dank nochmals für die tolle Hilfe! So langsam werden die Zusammenhänge auch klarer.
Liebe Grüße! |
|