Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 07-04-2007, 00:12   #1 (permalink)
Slotentwickler
 
Benutzerbild von Yooda
 
Registriert seit: Mar 2004
Ort: Herten
Beiträge: 62
Drag & Drop dynamisch ausgelesener Bilder

Hallo alle zusammen,

ich lade mir eine Liste von Bildern in mein Flash-Filmchen und möchte denen einen Eventhandler zuweisen, welches die Funktion startDrag ausführen soll. Allerdings reagiert dieser nicht. Ich habe diesen jetzt mal rausgenommen...
Wie soll ich das bewerkstelligen, dass jedes einzelne der Bilder den "OnRelease"-Eventhandler zugewiesen bekommt?

Bitte um Hilfe

Hier mein Code:

Code:
_root.tvar = new LoadVars();
_root.tvar.load("http://www.meinetestdomain.de/get.php");

load_btn.onRelease = function() {
	var my_array:Array = _root.tvar.m1.split(';');
	var t = 0;
	for (var i = 0; i<my_array.length; i++) {
		var curr = i+1;
				
		//pic_mcl = new MovieClipLoader();
		//pic_mcl.loadClip(curr+".gif", createEmptyMovieClip("pic_mc"+i, 1));
		
		_root.createEmptyMovieClip ("box"+i,t);
		_root["box"+i]._x=t;
		_root["box"+i].loadMovie (curr+".gif");
		t        = t+25;
	}
};

Viele Grüße

David

Geändert von Yooda (07-04-2007 um 01:22 Uhr)
Yooda ist offline   Mit Zitat antworten
Alt 07-04-2007, 12:58   #2 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Hallo,

da fehlt aber noch so einiges... Du kannst dein onPress() erst auf den MC legen, wenn der auch geladen ist. Man könnte auch verschachteln, aber ich hab's jetzt mal mit einem MovieClipLoader gemacht:
PHP-Code:
_root.tvar = new LoadVars();
_root.tvar.load("http://www.meinetestdomain.de/get.php");
_root.tvar.onLoad = function(ok) {
    if (
ok) {
        
_root.load_btn._visible true;
    } else {
        
trace("ERROR");
    }
};
load_btn._visible false;
pic_mcl = new MovieClipLoader();
pic_l = {};
pic_l.onLoadInit = function(obj) {
    
obj.onPress = function() {
        
this.startDrag();
    };
    
obj.onRelease obj.onReleaseOutside=function () {
        
stopDrag();
    };
};
pic_mcl.addListener(pic_l);
load_btn.onRelease = function() {
    var 
my_array _root.tvar.m1.split(';');
    for (var 
0i<my_array.lengthi++) {
        var 
mc _root.createEmptyMovieClip("box"+ii);
        
mc._x i*25;
        
pic_mcl.loadClip((i+1)+".gif"mc);
    }
}; 
So in der Art sollte das funzen.
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 07-04-2007, 13:13   #3 (permalink)
Slotentwickler
 
Benutzerbild von Yooda
 
Registriert seit: Mar 2004
Ort: Herten
Beiträge: 62
Hi,

wow, super!!!
Es haut echt hin!
Vielen Dank dafür

Allerdings hätt ich noch die eine oder andere Verständnisfrage dazu:

1)
Benötigen die einzelnen Clips nicht eine eindeutige Identifikation um die Clips im Nachhinein ansprechen zu können?
Denn ich muss den Elementen nach dem Klick die höchste Ebene (Z-Index) zuweisen... (geht das überhaupt?)


(In Js. brauche ich ja z.B. die ID document.getElementById("xyz")

2)
pic_l = {}; <= Was passiert in dieser Zeile?

3)
Angenommen ich würde gerne die Ergebnisse auch Zeilenweise ausgeben.
Ich habe in der for-Schleife eine Abfrage eingebaut:
Code:
if(i%4 == 0){
  // X wieder 0 setzen
  // Y = Y+25; setzen
 }
  else{
       X = X+25;
       }
Allerdings verschwinden fast 9/10 aller Grafiken spurlos.
Die anderen, die noch da sind, haben jedoch die korrekte Position.

Ich dachte an folgende Positionierung:

Bild1 Bild2 Bild3 Bild4
Bild5 Bild6 Bild7 Bild8
Bild9 usw...

Hat das ebenfalls etwas mit dem Eventhandler zu tun?


Viele Grüße und danke nochmal

David

Geändert von Yooda (07-04-2007 um 13:15 Uhr) Grund: Noch etwas vergessen...
Yooda ist offline   Mit Zitat antworten
Alt 07-04-2007, 13:19   #4 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Wenn du die clips nach dem Klicken ansprechen willst, dann kannst du ja "this" benutzen.
PHP-Code:
obj.onPress = function() { 
this.swapDepths(1000)//mal als Beispiel
this.startDrag(); 
}; 
Die Zeile hier
PHP-Code:
var pic_l = {} 
ist nix anderes als
PHP-Code:
var pic_l = new Object() 
nur eben kürzer.

Und für deine Anordnung kannste % (haste ja schon) und Math.floor() benutzen:
PHP-Code:
mc._x = (i%4)*25;
mc._y Math.floor(i/4)*25
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 07-04-2007, 13:30   #5 (permalink)
Slotentwickler
 
Benutzerbild von Yooda
 
Registriert seit: Mar 2004
Ort: Herten
Beiträge: 62
Hey, jetzt bin ich im Bilde.
Aber eines vergaß ich noch total (sorry)
Gibt es in Flash eine Komponente, welche man (wie hier im Beispiel) mit Bilder füllen kann und diese dann automatisch scrollt, wenn die Fläche komplett ausgefüllt wurde?
Damit meine ich so eine Art TextArea (oder besser noch dieses Window).
Dazu kommt noch, dass die Bilder, welche sich auf einer Bestimmten Fläche (Quadrat) befinden beim Button-Klick nicht gelöscht werden dürfen.
Danach wäre ich dann glücklich und zufrieden
Viele Grüße

Geändert von Yooda (07-04-2007 um 13:44 Uhr)
Yooda ist offline   Mit Zitat antworten
Alt 07-04-2007, 13:44   #6 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Für sowas ist ja die Komponente Scroll-Pane da.
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 07-04-2007, 15:41   #7 (permalink)
Slotentwickler
 
Benutzerbild von Yooda
 
Registriert seit: Mar 2004
Ort: Herten
Beiträge: 62
Es will einfach nicht hinhauen...

1) Es wird bei Methode 2 nur das letzte Bild hinzugefügt.
2) Dieses letzte Bild hat auch keinen Eventhandler mehr...

Könntest Du nochmal einen Blick drüber werfen?


Vielen Dank


Code:
mypane.content.attachMovie("pic_mcl", "row"+i, i);

_root.tvar.onLoad = function(ok) { 
    if (ok) { 
        _root.load_btn._visible = true; 
    } else { 
        trace("ERROR"); 
    } 
}; 
load_btn._visible = false; 
pic_mcl = new MovieClipLoader(); 
pic_l = {}; 
pic_l.onLoadInit = function(obj) { 
    obj.onPress = function() {
		this.swapDepths(1000);
        this.startDrag(); 
    }; 
    obj.onRelease = obj.onReleaseOutside=function () { 
        stopDrag(); 
    }; 
}; 
pic_mcl.addListener(pic_l); 
load_btn.onRelease = function() { 
    var my_array = _root.tvar.m1.split(';'); 
    for (var i = 0; i<my_array.length; i++) { 
        var mc = _root.createEmptyMovieClip("box"+i, i); 
		mc._x = (i%4)*35; 
		mc._y = Math.floor(i/4)*35;  
        pic_mcl.loadClip((i+1)+".gif", mc);
		mypane.content.attachMovie("pic_mcl", "row"+i, i); // Klappt nicht
        mypane.contentPath = "pic_mcl"; // Klappt auch nur 1 x (Beim letzten Bild)

    } 
};  

mypane.content.onEnterFrame = function(){
	this.refreshPane();
	mypane.redraw(true);
}
Yooda ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 02:54 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele