Avatar billede plastic.gangsta Nybegynder
01. marts 2005 - 14:26 Der er 10 kommentarer og
1 løsning

funktioner som aktiver et sæt af funktioner

Hej, jeg ønsker at lave en funktion på et menupunkt som aktiverer følgende funktioner. Det jeg tænkte var at man definere en overordnet funktion f.eks. overordnet() og at den så indeholde nedenstående kode. Når man så trykker på et menupunkt, så kan man blot kalde overordnet...?? Hvordan gøres disse to skridt (1) laver en funktion som indeholde en masse andre funktioner (2) aktiverer en anden funktion ved at trykke på en knap

/J
_______________________________
import mx.transitions.Tween;
import mx.transitions.easing.*;
    var tween_handlernul:Object = new Tween(menu, "_x", Elastic.easeInOut, 100, 200, 1, true);
    var tween_handleret:Object = new Tween(meny, "_x", Elastic.easeInOut, 100, 200, 1, true);
    tween_handleret.onMotionFinished = function() {
    var tween_handlerto:Object = new Tween(menu, "_alpha", Elastic.easeInOut, 100, 0, 0.2, true);
    var tween_handlertre:Object = new Tween(meny, "_alpha", Elastic.easeInOut, 100, 0, 0.2, true);
tween_handlertre.onMotionFinished = function() {
    var tween_handler1:Object = new Tween(front, "_xscale", Elastic.easeInOut, 200, 100, 1.5, true);
    var tween_handler3:Object = new Tween(back, "_xscale", Elastic.easeInOut, 200, 100, 1.5, true);
tween_handler1.onMotionFinished = function() {
    var tween_handler2:Object = new Tween(front, "_yscale", Elastic.easeInOut, 250, 100, 1.5, true);
    var tween_handler4:Object = new Tween(back, "_yscale", Elastic.easeInOut, 250, 100, 1.5, true);
    trace("onMotionFinished triggered");
tween_handler4.onMotionFinished = function() {
   
    _root.traceBox.vScrollPolicy ="on";
//trace function
function myTrace(msg)
{
    _root.traceBox.text += msg + newline;
    _root.traceBox.vPosition = _root.traceBox.maxVPosition;
}
/*********************************************************************/
//init
var myMCL = new MovieClipLoader();
/*********************************************************************/
//callbacks
myMCL.onLoadStart = function (targetMC)
{
  var loadProgress = myMCL.getProgress(targetMC);
  myTrace ("The movieclip " + targetMC + " has started loading");
  myTrace("Bytes loaded at start=" + loadProgress.bytesLoaded);
  myTrace("Total bytes loaded at start=" + loadProgress.bytesTotal);
  myTrace("____________________________________");
  _root.pre._alpha=50;
  myTrace("JENS")
}
myMCL.onLoadProgress = function (targetMC, loadedBytes, totalBytes) {
 
 
  myTrace ("movie clip: " + targetMC);
  myTrace("Bytes loaded at progress callback=" + loadedBytes);
  myTrace("Bytes total at progress callback=" + totalBytes);
  myTrace("____________________________________");
;
}
myMCL.onLoadComplete = function (targetMC)
{   
    myTrace (targetMC + " has finished loading.");
    var loadProgress = myMCL.getProgress(targetMC);
    myTrace("Bytes loaded at end=" + loadProgress.bytesLoaded);
    myTrace("Bytes total at end=" + loadProgress.bytesTotal);
    myTrace("____________________________________");
    _root.pre._alpha=0;
    _root.container._alpha=0;
    myTrace("JENS2")
}
myMCL.onLoadInit = function (targetMC)
{
    myTrace ("Movie clip:" + targetMC + " is now initialized");
    //targetMC._width = 400;
    //targetMC._height = 500;
    myTrace("____________________________________");
}
myMCL.onLoadError = function (targetMC, errorCode)
{
  myTrace ("ERRORCODE:" + errorCode);
  myTrace (targetMC + "Failed to load its content");
  myTrace("____________________________________");
}
/********************************************************************/
//load the files in to their respective targets
myMCL.loadClip("underside.swf","_root.container");
//myMCL.loadClip("test2.swf", "_root.myMC2");
//myMCL.loadClip("somepic.jpg", "_level0.myMC3");



//tween.onMotionFinished = function() {
    var tween_handler5:Object = new Tween(front, "_yscale", Elastic.easeInOut, 100, 250, 1.5, true);
    var tween_handler7:Object = new Tween(back, "_yscale", Elastic.easeInOut, 100, 250, 1.5, true);
    trace("onMotionFinished triggered");
tween_handler7.onMotionFinished = function() {
    var tween_handler6:Object = new Tween(front, "_xscale", Elastic.easeInOut, 100, 240, 1.5, true);
    var tween_handler8:Object = new Tween(back, "_xscale", Elastic.easeInOut, 100, 240, 1.5, true);
    trace("onMotionFinished triggered");
tween_handler8.onMotionFinished = function() {
    var tween_handler9:Object = new Tween(_root.cover, "_alpha", Photo.easeIn, 100, 0, 2, true);
   
trace("onMotionFinished triggered");
    tween_handler9.onMotionFinished = function() {
    var tween_handler11:Object = new Tween(menu, "_alpha", Elastic.easeInOut, 0, 100, 0.2, true);
    var tween_handler12:Object = new Tween(meny, "_alpha", Elastic.easeInOut, 0, 100, 0.2, true);
    var tween_handler12:Object = new Tween(container, "_alpha", Elastic.easeInOut, 0, 100, 0.2, true);
trace("onMotionFinished triggered");
tween_handler11.onMotionFinished = function() {
    var tween_handlernul:Object = new Tween(menu, "_x", Elastic.easeInOut, 200, 70, 1, true);
    var tween_handleret:Object = new Tween(meny, "_x", Elastic.easeInOut, 200, 70, 1, true);
};
};
};
};
};
};
};
};

________________________________________________________-
Avatar billede barklund Nybegynder
01. marts 2005 - 14:39 #1
Du bliver garanteret meget mere glad for først lige at skrive det lidt om, så du selv kan finde rundt i det - det ligner simpelthen crap, det script.

Det er så rodet og så grimt bygget sammen af alle mulige ting, at det bare skal gå galt.

Først kig lidt på, hvordan du kan lave et smartere "kø"-system af funktioner istedetfor at bygge den ene callback ind i den anden i den grad.

Prøv lige for sjovt skyld at lave en autoformat på dit script - så kan du så hvor rodet det er!

No offence, men det er simpelthen umuligt for nogen andre at hjælpe dig med - og lige så umuligt for dig selv om en måneds tid!

--
Morten Barklund
Avatar billede plastic.gangsta Nybegynder
01. marts 2005 - 15:02 #2
Ja, det gad jeg da kunne, men er newbie til AS, så har ikke kompetencerne til at komprimere det....

Tilbage til spg.'et er det muligt at lave en funktion som indeholde andre funktioner. Så er det vel ligegyldigt om det er stort og overskueligt som min kode eller om det fylder to linjer...
Avatar billede barklund Nybegynder
01. marts 2005 - 15:07 #3
Men ovenstående er jo fyldt med funktioner, der indeholder funktioner? Der er jo en "nesting" eller indlejring af funktioner 7-8 funktioner i dybden. At putte én mere uden om er vel intet problem?
Avatar billede plastic.gangsta Nybegynder
01. marts 2005 - 15:16 #4
hvordan laver jeg det således at funktion ikke bliver kaldt med det samme, men først når man kalder den øverste i min nest? Kan bare definere overstående og når man så trykker på knappen?
Avatar billede barklund Nybegynder
01. marts 2005 - 15:21 #5
Jeg vil blot gentage, at det er et helvede at overskue for nogen som helst - i sær dem, du vil have til at hjælpe dig.

Desværre :/

--
Morten Barklund
Avatar billede plastic.gangsta Nybegynder
01. marts 2005 - 15:58 #6
Ok - se bort fra overstående funktioner...

Kan man definere en funktion f.eks.

barklund() som så indeholde andre funktioner som er nested - kan man definere den funktion engang for alle (hvis vi antager at den bliver ligeså lang som min overstående) altså når filmen åbner, og når jeg så vil bruge den kan jeg blot kalde barklund();

og hvordan får man funktionen til ikke at respondere på de ting når den loader, men først når man kalder den - findes der en funktion i flash der blot definere funktionen??
Avatar billede barklund Nybegynder
01. marts 2005 - 16:16 #7
Altså man laver en funktion som:

function minFunktion() {
  // her er en masse crap
}

Og så kalder man den ved at skrive:

minFunktion();

Men det er der da intet hemmeligt i?

--
Morten Barklund
Avatar billede plastic.gangsta Nybegynder
01. marts 2005 - 20:16 #8
jamen smid da et svar for konstruktiv kritik og hjælp, har kæmpet mig igennem det og det ser ud til at lykkedes
Avatar billede barklund Nybegynder
01. marts 2005 - 21:31 #9
Troede nu ikke, at dit spørgsmål var, hvordan man laver en funktion - for det er da lige til? Det har du vel gjort før?

--
Morten Barklund
Avatar billede plastic.gangsta Nybegynder
01. marts 2005 - 21:48 #10
Ja det har jeg også, tror bare at jeg forvirrede mig selv mere end hvad sundt var - det var sådan set heller ikke spg.'et i starten da jeg troede at det krævede noget meget mere komplekst..
Avatar billede barklund Nybegynder
01. marts 2005 - 21:54 #11
Men som sagt - det kan gøres meget pænere og overskueligt - dog ikke noget, jeg lige orker at kaste mig ud i. :)

Og tark for points..

Du kan forresten evt. finde nogle pointers om gode programmeringsskikke og meget andet i bogen Grundlæggende Programmering i ActionScript: http://globe.dk/?action=detail&vare=FG227-7

--
Morten Barklund
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester