Volledige versie bekijken : button._name
GVR
%Europe/Berlin %845 %2005, 21:17
beste flashers
zijn er nog mensen die weten hoe ze de naam van een zojuist bediende knop in een sting kunnen laden?
ik heb dit geprobeerd met
var buttonnaam = button._name;
of
var buttonnaam = this._name;
maar kan in dit forum hier niets over vinden.
mvgvr
Roenes
%Europe/Berlin %848 %2005, 21:22
mijnButton.onRelease = function()
{
var btn = this._name;
trace(btn);
}Zou moeten werken
TheDutch
%Europe/Berlin %473 %2005, 12:22
Belangrijk om te melden is dat de code van Roenes de variable "btn" aanmaakt binnen de button! Ik ga er vanuit dat de variable buiten de butten moet staan. Houdt hier rekening mee :).
Roenes
%Europe/Berlin %507 %2005, 13:11
var btn;
mijnButton.onRelease = function()
{
btn = this._name;
trace(btn);
}
Nu is btn ook buiten de onRelease opvraagbaar :)
GVR
%Europe/Berlin %587 %2005, 15:06
Beste Roenes,
dank voor je post, maar het heeft me nog niet tot een oplossing gebracht, ik begrijp een aantal dingen van je post niet.
waar moet dit script staan? toch niet in de "action" van de button, want als ik me niet vergis, hoef je zelf niet te voorzien in "mijnButton" dit resulteert o.a. in een syntax-error:
"Statement must appear within on handler" (de var moet gedeclareerd worden op andere plaats?)
stel het script hoort niet in de "Action" van een bepaalde button, dan moet ik dit script dus voor iedere button afzonderlijk een script moet maken?
en laad ik dan de naam van de button in een variable terwijl ik de naam van de button al in het script gebruik? (wazig geformuleerd? vandaar voorbeeld)
bij het script:
var btn;
mijnButton.onRelease = function()
{
btn = this._name;
trace(btn);
}
word de naam van de button die ik zelf invoer voor "mijnButton" later geladen in de variable "btn"
ik hoop dat je nog even kunt kijken naar dit probleempje
mvgvr
theFlashWizard
%Europe/Berlin %630 %2005, 16:07
A=5
for(i=1;i<=A;i++){
myButton = attachMovie("myButton ","myButton "+i,i)
myButton.myName = "myButton "+i
}
zo zet je dus "van buiten af" een variabele in de buttons die je dan weer kan gebruiken met een onRelease.. Khoop dat je zoiets bedoelt.. want het is niet helemaal duidelijk..
GVR
%Europe/Berlin %739 %2005, 18:45
hoi FlashWizard,
Dit is niet wat ik bedoel, ik wil juist niet "van buiten af" een variable declareren,
ik wil op een knop drukken, en de naam van de knop moet dan in een variable geladen worden.
maar volgens mij laad ik met het script dat Roenes heeft ingevoerd de naam van de button, maar het script zelf moet ik de buttonnaam invoeren.
m.a.w. het script is dus niet direct toepasbaar bij verschillende knoppen, want de knopnaam moet zelf ingevoerd worden.
mvgvr
theFlashWizard
%Europe/Berlin %848 %2005, 21:21
this._name is toch niet zelf invoeren? dan haalt hij het zelf gewoon op..
dus em.. volgens mij pas je het gewoon fout toe.. (no offence)
mag ik je naar bedoeling met dit script vragen? want volgens mij wordt het n btje omslachtig..
GVR
%Europe/Berlin %404 %2005, 10:42
ik heb een movie waarin knoppen dmv een tween over het scherm bewegen, bij mouse-over word dit gepauseerd, en bij button-down worden de knoppen vergroot.
het vergroten en starten/stoppen gaat prima,
omdat ik een groot aantal knoppen heb wil ik de code zo schrijven dat ik hem direct in elke button kan plakken. om de code voor elke knop te kunnen laten werken, moet hij de naam van de knop inladen, zodat hij weet welke button hij moet vergroten.
hieronde de code tot nu toe, waarin ik de naam van de button laad in de variable "btn"
en dmv HouderMC.attachMovie("btn", "insert1", "1"); die bepaalde button laad in "HouderMC"
ik hoop dat ik het probleem bij deze verduidelijkt heb.
mvgvr
on (rollOver)
{
stop();
}
on (press) {
var btn = this._name;
trace(btn);
HouderMC.attachMovie("btn", "insert1", "1");
var stap = 0.1;
for (var K = 1; HouderMc._height*(1+stap)<0.9 * stage.height & HouderMc._width*(1+stap)<0.9 * stage.width & K<500; K=K*(1.01)/* K++*/)
{
stap = K/10;
HouderMc._height = HouderMc._height*(1+stap);
HouderMc._width = HouderMc._width*(1+stap);
HouderMC._x = (Stage.width/2)-((HouderMC._width)/2);
HouderMC._y = (Stage.height/2)-((HouderMC._height)/2);
}
}
on (rollOut)
{
HouderMC.unloadMovie();
play();
}
theFlashWizard
%Europe/Berlin %414 %2005, 10:56
hetzelfde script op meerere buttons willen plakken? dat vraagt om n for lus..
dan kun je al het script in het frame script zetten.. en heb je uiteindelijk 1 onRelease voor alle buttons.. :)
enne we hebben voor actionscript.. gebruik die is ff.. want nu ist n btje onleesbaar.. :P
GVR
%Europe/Berlin %450 %2005, 11:49
ok een FOR,...... maar dan moet ik toch nog steeds de naam van de zojuist geactiveerde button weten? er moet immer beoordeeld worden of deze voldeot aan de parameters van de FOR, toch?
mvgvr
enne we hebben voor actionscript..
op deze manier?
on (rollOver)
{
stop();
}
on (press) {
var btn = this._name;
trace(btn);
HouderMC.attachMovie("btn", "insert1", "1");
var stap = 0.1;
for (var K = 1; HouderMc._height*(1+stap)<0.9 * stage.height & HouderMc._width*(1+stap)<0.9 * stage.width & K<500; K=K*(1.01)/* K++*/)
{
stap = K/10;
HouderMc._height = HouderMc._height*(1+stap);
HouderMc._width = HouderMc._width*(1+stap);
HouderMC._x = (Stage.width/2)-((HouderMC._width)/2);
HouderMC._y = (Stage.height/2)-((HouderMC._height)/2);
}
}
on (rollOut)
{
HouderMC.unloadMovie();
play();
}
theFlashWizard
%Europe/Berlin %479 %2005, 12:30
waarom zou
if(this._name == "") //actie
dan niet werken?
GVR
%Europe/Berlin %622 %2005, 15:56
hoi FlashWizard
ik heb je post van 02-09-2005, 16:01 "Re: Variabele aan mc koppelen" gelezen, en kan me idd voorstellen dat dit de manier is waarop ik voor alle buttons hetzelfde script kan gebruiken......
echter wat bedoel je met "frame script" is dat gewoon de "action" van een "keyframe"
mvgvr
theFlashWizard
%Europe/Berlin %755 %2005, 19:08
een script dat niet "op" een movieclip of button staat.. maar in het frame..
dan verscheint er ook n a in het keyframe in je timeline.. :)
GVR
%Europe/Berlin %979 %2005, 00:31
Beste FlashWizard en andere,
ik probeer een script in een frame script te schrijven dat geldig is op het moment wanneer deze frames afgespeeld worden.
in dit script moet verschillende knoppen een bepaalde functie krijgen. btn1, btn2 btn3 tm btn25
in beginsel wil ik de movie stoppen.
de code die ik hiervoor gebruiken moet, moet iets dergelijks als hieronder zijn. ik verwacht dat alleen het gedeelte "btn+i" fout is,.... maar hoe meot het wel?
mvgvr
[CODE]for(i=1,i<max,i++){
"btn+i".onRollOver = function(){
stop();
}
}
[/CODE
GVR
%Europe/Berlin %980 %2005, 00:32
Beste FlashWizard en andere,
ik probeer een script in een frame script te schrijven dat geldig is op het moment wanneer deze frames afgespeeld worden.
in dit script moet verschillende knoppen een bepaalde functie krijgen. btn1, btn2 btn3 tm btn25
in beginsel wil ik de movie stoppen.
de code die ik hiervoor gebruiken moet, moet iets dergelijks als hieronder zijn. ik verwacht dat alleen het gedeelte "btn+i" fout is,.... maar hoe meot het wel?
mvgvr
for(i=1,i<max,i++){
"btn+i".onRollOver = function(){
stop();
}
}
theFlashWizard
%Europe/Berlin %986 %2005, 00:40
je kan bijv variabele namen en instance names samenstellen binnen een []
dat maakt dus:
for(i=1,i<max,i++){
this["btn+i"].onRollOver = function(){
stop();
}
}
Ik een simpele versie van een zelf gemaakte radio button als bijlage bijgevoegt.. dit omdat de basis hiervan is wat jij ook nodig hebt.
GVR
%Europe/Berlin %465 %2005, 12:10
kan radioButton00.fla niet openen,
"unexpected file format"
beetje jammer,.....
theFlashWizard
%Europe/Berlin %478 %2005, 12:29
raar.. ik heb 2004 pro..
ik kijk ff of ik em in mx kan zetten..
hij staat erbij :)
GVR
%Europe/Berlin %432 %2005, 11:22
beste flashwizard en andere,
ik ben er nog niet achter wat ik verkeerd doe maar dat er iets mis zit weet ik iig zeker! :X
met de onderstaande code, kan ik de eerste knop bedienen (btn1) het resulteerd in een pause/stop en een waarde (nam btn1) voor "buttonnaam1"
wat gaat er mis? en wat doet "this["btn"+i].i = i" uit het voorbeeld/heb ik dat nodig?
mvgvr
var a = 25;
for (i=1; i<a; i++) {
this["btn"+i].onRollOver = function() {
//this["btn"+i].i = i
var buttonnaam1 = this._name;
var buttonnaam2 = this["btn"+i];
trace("buttonnaam1:"+buttonnaam1);
trace("buttonnaam2:"+buttonnaam2);
stop();
}
}
GVR
%Europe/Berlin %871 %2005, 21:55
het is al weer ff geleden, heb veel gepuzzeld, maar ben er nog niet uit!
zoals je hieronder kunt zien heb ik verschillende varianten geprobeerd, omdat ik twijfel aan de target, heb ik de varianten hieronder ook getest zonder "this"
uit de output die ik genereer, concludeer ik dat de er niet onRollOver/onRelease voorwaarden word voldaan, en dat (misschien de oorzaak) het lijkt alsof de "for" maar een keer doorlopen word, ipv ieder frame opnieuw.
mvgvr
var a = 25;
for (i=1; i<a; i++) {
trace("in for 1");
var currentbutton = ["btn"+i];
trace("currentbutton:"+currentbutton);
this["currentbutton"].onRollOver = function() {
stop();
trace("in for RollOver");
};
this[currentbutton].onRelease = function() {
trace("in onrealse1");
stop();
};
this.currentbutton.onRelease = function() {
trace("in onrealse2");
stop();
};
this["btn"+i].onRelease = function() {
trace("in onrealse3!");
stop();
};
this[currentbutton].onRelease = function() {
trace("in onrealse4");
stop();
};
theFlashWizard
%Europe/Berlin %923 %2005, 23:10
waarom zou die for ieder frame opnieuw uitgevoert moeten worden? :S
1x opgeven wat iets bij bijv een onRelease moet doen is genoeg hoor..
GVR
%Europe/Berlin %941 %2005, 23:35
nou de knoppen die met dit script een functie krijgen, veranderen over meerdere frames van plaats, tijdens deze tijd, moeten ze actief/bruikbaar blijven.
het is dus juist wel de bedoeling dat het langere tijd actief blijft maar op een of andere manier lukt het niet.
er word niet aan de voorwaardes van de onRollOver/onRelease voldaan
mvgvr
theFlashWizard
%Europe/Berlin %963 %2005, 00:08
de onRelease's enzo worden verbonden aan een instancename, zolang die niet verandert of de mc/button zelf niet verwijdert verliezen de mc's/buttons nooit die functie..
GVR
%Europe/Berlin %385 %2005, 10:14
goede morgen,.....
ik denk erachter te zijn waarom het bij mij (nog) niet wil lukken,....
wanneer in een layer met daarin de knop onderdeel is van een mask werkt de knop niet, wanneer ik de layer uit de mask verplaats naar buiten de mask, doet de knop het wel,....
heb je voor buttons binnen een mask een andere target nodig?
mvgvr
theFlashWizard
%Europe/Berlin %440 %2005, 11:34
de knop is een masker of staat onder een masker?
GVR
%Europe/Berlin %449 %2005, 11:46
de knop staat in een mask
theFlashWizard
%Europe/Berlin %809 %2005, 20:25
ik vroeg is de knop een masker of zit hij onder een masker?
maar goed.. heb et ff geprobeert.. want Kwist niet zeker of je een masker bijv een onRelease kon meegeven.. maar het kon.. dus daar ligt het niet aan..
weet je zeker dat je alleen de knop van de ene layer naar de andere layer verplaatst?
GVR
%Europe/Berlin %896 %2005, 22:30
wanneer ik de layer buiten de mask heb staan, zoals aangegeven in de bovenste deel van het toegevoegde plaatje van de timeline:
werkt de vogende code:
var a = 25;
for (i=1; i<a; i++) {
b1.onRollOver = function() {
trace("in RollOver");
_root.stop();
};
}
(waar b1 de naam is van de knop die in de layer aanwezig is)
wanneer ik de layer vervolgens verplaats zoals in het plaatje in de tweede timeline, werkt de code niet meer, vandaar dat ik dacht aan een fout in de target
mvgvr
theFlashWizard
%Europe/Berlin %930 %2005, 23:19
nee van layers merkt actionscript niks..
maar em.. waarom een for lus als je maar 1 knop hebt, b1.?
GVR
%Europe/Berlin %532 %2005, 13:46
heb wel meerder buttons, maar ik kom er niet uit, dus ik kleed de functie uit, om bepaalde fouten uit te sluiten.
en zo ben ik erachter gekomen dat hij niet werk als de layer met de knop onderdeel is van een mask, en wel als hij de layer onafhankelijk is
mvgvr
theFlashWizard
%Europe/Berlin %622 %2005, 15:56
verstandig.. das n redelijke manier om te debuggen :)
maar als jij in een for lus n instancename als b1 neerzet wordt b1 gewoon tig x aangesproken... (als je dit nog niet doorhad)
en em.. is het geen optie een vast masker neer te zetten en er onder een onzichtbare mc te maken om op te klikken?
en als dat geen optie is.. waarom moeten de mc's onderdeel worden van een masker
GVR
%Europe/Berlin %838 %2005, 21:07
wat moet ik me voorstellen met een vast masker? moet ik daarvoor de bovenste layer voorzien van een uitsparing??
de layers die voorzien zijn van de tweens van de buttons "moeten" in een mask staan omdat de buttons slechts een deel van de tweeen te zien zijn. er is een soort pas-par-tout waar de buttons onderuit verschuiven en dan beetje bij beetje meer zichtbaar worden.
denk dat de layer met uitsparing, toch de makkelijkste oplossing is, en daar ga ik me nu op richten.
theFlashWizard
%Europe/Berlin %847 %2005, 21:21
vast is gewoon n vorm.. dat geen mc of button is..
zo zie ik et teminste..
maar hoe jij et nu moet aanpakken ligt helemaal op je doel en daar heb ik helemaal geen zicht op..
maar em.. als de buttons btje bij btje zichtbaar worden staan ze toch onder het masker.. en zijn ze geen deel van het masker?
vBulletin® v3.8.1, Copyright ©2000-2012, Jelsoft Enterprises Ltd.