Archief - Director/lingo: Blenden over meerdere seconden

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Avalanched

Legacy Member
hoe kunje van een sprite van blend 100 naar blend 50 in meerdere seconden ( bv: 5 seconden )

Liefst let er op > director 2004 !

thx

Breen

Legacy Member
Code:
Global i
Global Startborder
Global Endborder
Global Time
Global Diff


On BeginSprite me
[INDENT]
Startborder = 100
Endborder = 50
Diff = Startborder - Endborder
Time = 120
i = 1
[/INDENT]
end


On Enterframe me[INDENT]
i = i+1
if sprite(me.spritenum).blend > Endborder and i < Time then
sprite(me.spritenum).blend = Startborder -  ((Diff/Time) * i)
end if
[/INDENT]
end

Dit zou normaal the trick moeten doen, mind you, het is al heel lang geleden dat ik nog in lingo gecode heb. Het principe is als volgt:

Ik definieer een start, stop, difference en in hoeveel keer dat de actie moet gebeuren (in frames)

De blend van de sprite wordt dan in dit geval de eerste keer (i = 1):
100 - (50 / 120)*1, dan
100 - (50/120)*2, ..... tot
100 - (50/120)*120,

wat dan op 100 - 50 uitkomt.


Hopelijk ben je er iets mee,
Breens Jan

Avalanched

Legacy Member
dank u

nog klein vraagje hoe maak je er dan een mouse enter van ?

PHP:
Global i
Global sta
Global sto
Global Time0
Global Diff


On BeginSprite me
  
  Sta = integer(100)
  sto = integer(50)
  Diff = integer(sta-sto)
  Time0 = integer(5)
  i = integer(1) 
  
end


On Enterframe me
    if the mouseEnter = true then
  i = i+1 
  if sprite(me.spritenum).blend > sto and i < Time0 then
    sprite(me.spritenum).blend = Sta - ((Diff/Time0) * i) 
  end if 
 end if
  
end

( heb wel de variabelen een beetje aangepast .. ma die the mouseEnter macheert niet ( nen mouseDown wel ) .. ma tis voor een rollover effect

is het beste dat je dan een custom handler maakt of gaat het simpeler ? ( mind > director 2004 ;)) want heb gehoort dat de custom handler een beetje is aangepast in 2004 ( mss daje het nog weet )

Avalanched

Legacy Member
PHP:
Global i
Global sta
Global sto
Global Time0
Global Diff
Global flag

On BeginSprite me
  
  Sta = integer(100)
  sto = integer(50)
  Diff = integer(sta-sto)
  Time0 = integer(5)
  i = integer(1)
  flag = integer(0)
  
end

on mouseEnter me
  flag = 1
end
on mouseLeave me
  flag = 2
end

On Enterframe me
  --Uitfaden
  if flag = 1 then
    i = i+1 
    if sprite(me.spritenum).blend > sto and i < Time0 then
      sprite(me.spritenum).blend = Sta - ((Diff/Time0) * i) 
    end if
    if sprite(me.spritenum).blend < sto+1 then
      sprite(me.spritenum).blend = sto
      flag = integer(0)
    end if
  end if
  
  --Infaden
  if flag = 2 then
    i = i-1 
    if sprite(me.spritenum).blend > sto and i < Time0 then
      sprite(me.spritenum).blend = Sta - ((Diff/Time0) * i) 
    end if
    if sprite(me.spritenum).blend > sta-1 then
      sprite(me.spritenum).blend = sta
      flag = integer(0)
    end if
  end if
  
end

ok tis me gelukt :) eindelijk Maar nog bij het infaden zit ik met een kleine delay voor hij begint .. weet jij soms waarom ?

ava

=(X)=RaVen=

Legacy Member
nen 1MCT-er die lingo aanleer aan nen 2MCT-er :rofl:
(no offence natuurlijk ;))

Breen

Legacy Member
Och nen 2 MCT'er :), allé nice,

Ja die doet nog even "niets" omdat het getal uit de deling kleiner is als 1 en dus er niets af de blend gaat. :)

Btw, ik had het zelf ook via flag opgelost, :niceone:

Avalanched

Legacy Member
nee da was het niet

tis gewoon bij het aftellen van die i .. moet die nog aftellen van het geen welke waarde hij al had

dus die

bij het uitfaden moet die terug i = integer(1) krijgen
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan