Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 23-11-2005, 22:11   #1 (permalink)
Neuer User
 
Benutzerbild von dermac
 
Registriert seit: Jul 2004
Ort: Dortmund
Beiträge: 63
attach mc - mit i++ hinzugefügte mcs ansprechen

swf und fla:
http://www.mcsqueeb.com/uebungen/attach_ecke_strich.fla
http://www.mcsqueeb.com/uebungen/attach_ecke_strich.swf

Hi, eine Frage zu AttachMovieClip. Ich habe 2 mcs in der bibliothek, die ich per array.push auf die bühne hinzufüge. Theoretisch heisst jeder hinzugefügte mc ungefähr: mcId[i] = _root.container.attachMovie("ecke", mcId[i], 6+i);

Ich kann jeden mc mit this ansprechen und habe ein rollover hinzugefügt. Jetzt möchte ich den umliegenden 8 mcs auch noch was zuweisen, kann sie aber nicht ansprechen, da sie "undefined" sind( ich habs mit mcId[i-1] probiert)

Weiss jemand wie man jeden einzelnen mc auf der bühne ansprechen(zB den umliegenden mcs auch eine rotation/2 hinzufügen) könnte? Ist der Ansatz mit der for Schleife und den Arrays falsch?
__________________
www.mcsqueeb.com

Geändert von dermac (23-11-2005 um 22:18 Uhr)
dermac ist offline   Mit Zitat antworten
Alt 24-11-2005, 00:10   #2 (permalink)
Neuer User
 
Registriert seit: May 2003
Ort: Aschersleben
Beiträge: 80
hi dermac,

entschuldige das ich Deinen Thread für eine Frage mißbrauche.
Leider bin ich noch viel zu schlecht um Dir bei Deinem Problem helfen zu können.

Ich habe mir aber gerade Deine Seite angesehen.

So was wie Deine 4 Fenster die immer ausweichen wenn eines größer wird suche ich schon seit längerer Zeit.

Ich wollte das mit Kugeln machen, als Button oder so.


Es wäre sehr nett von Dir wenn Du vielleicht ein Tutorial kennst in dem ich mir sowas ähnliches ansehen kann. Oder wenn Du mir einen kleinen Tip für meinen Denkansatz geben kannst.

Danke
Gruß Andreas
andbal ist offline   Mit Zitat antworten
Alt 24-11-2005, 00:25   #3 (permalink)
bof
just flash
 
Benutzerbild von bof
 
Registriert seit: Jul 2002
Ort: Eine Stadt an der Donau mit dr
Beiträge: 189
hi there,

wenn ich das richtig verstanden habe hast du das script innerhalb deines _mc's. So das du es mit this ansprechen kannst. also solltest du mit _parent.mcId(welcher?) ansprechen und ihm mit += die function zuweisen.
um die nächst gelegenen zu erhalten musst du dann eben erstmal herausfinden welchen du den gerade hast also
var getLocation:String = this._name.split("mcId",1);
dann hast du erstmal den lokalen movieclip und dann ist die Frage wie deine mc's angeordnet sind damit du die umliegenden mc's erwischt.
__________________
------------------------------------------
www.fh-neu-ulm.de
www.fh-ulm.de
www.solution-nt.com
bof ist offline   Mit Zitat antworten
Alt 24-11-2005, 00:41   #4 (permalink)
:Void
 
Benutzerbild von janoshnosh
 
Registriert seit: Jun 2005
Ort: börlin
Beiträge: 931
ich habe dir mal ein paar basics zu dynamischen mc's aufgeschrieben, vielleicht hilft dir das.
PHP-Code:
//array für die mc's erstellen
var aMcs = new Array ();
//mc's atachen und id geben
for (var 010i++) {
    var 
mc this.attachMovie('dein_mc''mc'+ii);
        
mc.id i;
        
this.aMcs.push(mc);
        
this.putReleaseEvent(mc)
}

//zwei mögliche aufrufe:
/*1. */ 
trace(this.aMcs[5]) //ist der sechste mc
/*2. */ 
trace(this['mc'+5]) //ist auch der sechste mc

//alle aufrufen
for (var 0this.aMcs.lengthi++) {
    
trace(this.aMcs[i]);
    
trace(this['mc'+i]);
}

function 
putReleaseEvent (target) {
    
target.onRelease = function () {
        
trace(this.id);
    }

gruß janosch

edit: jetzt mit kleiner onRelease-zuweiss-funktion

Geändert von janoshnosh (24-11-2005 um 00:44 Uhr)
janoshnosh ist offline   Mit Zitat antworten
Alt 24-11-2005, 08:00   #5 (permalink)
Neuer User
 
Benutzerbild von dermac
 
Registriert seit: Jul 2004
Ort: Dortmund
Beiträge: 63
Danke Janosch und bof- das sieht schon mal gut aus- werd ich nachher ausprobieren.

@Andbal: Ich habe das mit den vier quadraten seeehr angepasst für meine seite gemacht.
Grundsätzlich befinden sich vier objekte auf der bühne, die auf rollover reagieren--> funktion aufrufen.

_root.button1.onRollover = function () {
changeSize(this, this._width, this._width*2, this._height, this._height * 2)
}

funktion ungefähr:

function changeSize(mc2change, width1, width2, height1, height2) {
easeType = mx.transitions.easing.Elastic.easeOut;
var time:Number = 40;
var mc = mc2change;
changeWidth = new mx.transitions.Tween(mc, "_width", easeType, width1, width2, time, false);
changeHeight = new mx.transitions.Tween(mc, "_height", easeType, height1, height2, time, false);
}
__________________
www.mcsqueeb.com

Geändert von dermac (24-11-2005 um 08:04 Uhr)
dermac ist offline   Mit Zitat antworten
Alt 26-11-2005, 20:43   #6 (permalink)
Neuer User
 
Benutzerbild von dermac
 
Registriert seit: Jul 2004
Ort: Dortmund
Beiträge: 63
ok, hab mir das ganze jetzt mal angesehen, aber was soll:

"this.putReleaseEvent(mc)" sein? Wenn google nix anzeigt, dann kann's ja wohl nicht ganz richtg sein!?

Mein skript war:
PHP-Code:
/////////////////////////////////////////////// Vars
var waagerecht:Number 0;
var 
senkrecht:Array = new Array(5152535455565758595105115125135145155165175185195205215225235245255265275285295305315);
var 
mcId:Array = ["0"];
var 
arr:Number 0;

////////////////////////////////////////////// ATTACH MOVIE

_root.createEmptyMovieClip("container"5);
for (
i=0i<1024i++) {
    
mcId.push(i);
    var 
eckeoderstrich_chooser:Number random(2);
    if (
eckeoderstrich_chooser == 0) {
        
mcId[i] = _root.container.attachMovie("ecke"mcId[i], 6+i);
        
mcId[i]._x 1+waagerecht*10;
        
mcId[i]._y senkrecht[arr];
        
mcId[i]._rotation random(4)*90;
        
////////////////////////////////////////////
        
mcId[i].onRollOver = function() {
            
rotate(thisthis._rotationrandom(4)*90);
        };
        
///////////////////////////Random: "Strich" Mc oder "Runde Ecke"  Mc
    
} else {
        
mcId[i] = _root.container.attachMovie("strich"mcId[i], 6+i);
        
mcId[i]._x 1+waagerecht*10;
        
mcId[i]._y senkrecht[arr];
        
mcId[i]._rotation random(4)*90;
        
////////////////////////////////////////////
        
mcId[i].onRollOver = function() {
            
rotate(thisthis._rotationrandom(4)*90);
            
trace(mcId[i]);
        };
    }
    
///////////Nach 32 Objekten neue Reihe
    
waagerecht++;
    if (
waagerecht == 32) {
        
arr += 1;
        
waagerecht 0;
    }
}
///////////////////////////////////////////////////TWEEN Function
function rotate(mc2changerot1rot2) {
    
easeType mx.transitions.easing.Bounce.easeOut;
    
easeTypeAlpha mx.transitions.easing.Elastic.easeIn;
    var 
time:Number 25;
    var 
mc mc2change;
    
changeRot = new mx.transitions.Tween(mc"_rotation"easeTyperot1rot2timefalse);

EDIT: Ok, sorry- ist 'ne funktion
__________________
www.mcsqueeb.com

Geändert von dermac (26-11-2005 um 20:45 Uhr)
dermac 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 13:38 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele