Egy tutoriálból vett animáció háterének változtatása
2014-02-19T21:08:06+01:00
2014-03-15T14:02:47+01:00
2022-06-29T08:35:44+02:00


  • nincs mit,

    ps. nem lehet, mivel vélhetőleg (még az elején) a moderátor átrakta a témát ide, az Állás/munka rovatba, mert csak a "feladatkiírást" látta, de azt nem, hogy mivel is próbálkoztál, stb.
    Mutasd a teljes hozzászólást!
  • Köszönöm szépen az értékes és részletes segitségedet.Most megértettem,hogy miért is fekete a háttér és miért nem lehet változtatni minöség romlás nélkül.A megadott tananyag nagyon értékes volt és lesz is számomra.

    Üdvözlettel Miklós

    Ps:Pontot itt nem lehet adni?
    Mutasd a teljes hozzászólást!


  • nyilván a minimuma, nem a maximuma...
    Mutasd a teljes hozzászólást!
  • közben írtál privátban, és nem vettem észre, hogy publikusan is felhoztad a témát, 

    szóval, ahogyan írtam: az ADD pont úgy működik, ahogyan gondolod, az alatta levő pixelek RGB értékeihez hozzáadja a sajátjait, és értelemszerűen a maximális értéknél "vág", azaz komponensenként (mivel 8 bitről van szó, előjel nélkül) maximum 255 lehet az összeg, (ezért lesz az, hogyha alul kék van, és amit "add"-olsz az piros, akkor a végeredmény lila lesz, a két szín arányának megfelelően, azaz, ha a kék értéke kicsi volt a piroséhoz képest, akkor a végeredmény a pirostól kevésbé fog eltérni, ha fordítva, akkor a kéktől, ha egyformák voltak, akkor meg "teljesen" lila lesz, és ezért van az, hogy mondjuk sárgán a piros "nem fog megélni", legfeljebb narancsba mehet el (mivel a sárgában eleve van piros)),

    Additive color - Wikipedia, the free encyclopedia
    Blend modes - Wikipedia, the free encyclopedia


    szerkesztve: (a "számítás matekja")
    eredmény_pixel_R_értéke = maximuma(255, háttér_pixel_R_értéke + előtér_pixel_R_értéke)
    eredmény_pixel_G_értéke = maximuma(255, háttér_pixel_G_értéke + előtér_pixel_G_értéke)
    eredmény_pixel_B_értéke = maximuma(255, háttér_pixel_B_értéke + előtér_pixel_B_értéke)

    a példájában "értelemszerűen" Hexadecimális literálokat használ,
    Mutasd a teljes hozzászólást!
  • Bocsánat de lenne egy kérésem.A blendMode oldalon BlendMode.ADD mutat egy számitási példát amit csak részben értek.Nem találok tutoriált ahol részleteznék ezt a számitást.
    Még nem akarom lezárni a témát mert biztos még lesznek gondok:
    A hátér csere nagyon jól müködik.
    Köszönöm szépen
    Mutasd a teljes hozzászólást!
  • bocsánat, de publikusan válaszolok:

    mint írtam vala (lásd a "szerkesztve" után), az a legegyszerűbb "megoldás", ha a kódban megkeresed a részecskék "konténerét", és annak a blendMode property-jét olyan értékre állítod, amelyiknél a részecskék "feketéje" "nem írja felül" a háttérszínt, 
    azaz nyilván a BlendMode.NORMAL nem lesz jó, de a BlendMode.SCREEN, BlendMode.ADD esetleg jó lehet, attól függően, hogy mit is szeretnél, azaz milyen színűekre akarod a részecskéket, és a háttered milyen,

    tehát megnyitod a flash szerkesztőben mondjuk a LightParticles_Red.fla-t, a legfelső rétegen, annak az első képkockáján látsz egy action-t, azt megnyitod az Actions (F9) ablakban/panelen, és mondjuk az init fv. végére (stage.addEventListener() után) beírod a következő kódsort:

    displayBitmap.blendMode = BlendMode.ADD;

    majd a dokumentumod háttérszínét (ezt a beágyazásnál is megadhatod, azaz a html-ben) beállítod a neked tetszőre, és

    vagy meg leszel elégedve, vagy meg fogsz lepődni, hogy nem is ezt akartad,

    ugye ebben a demóban "piros színűek" a részecskék, ezek után, ha a hátteret kékre állítod, akkor az ADD miatt lilának fognak látszódni,
    ezt előre lehet tudni, ha megnézed (a fenti linken), hogy az ADD-ot miként kell értelmezni, 
    nyilván sárga háttéren meg "semmit nem fogsz látni",

    ez a legegyszerűbb "megoldás", ami persze nem megoldás, de semmi extra nem kell hozzá,

    ha tetszőleges hátteret akarsz, és tetszőleges részecske színt, azaz nem hasonló blending trükkel  szabadulnál meg a "feketétől", arra meg egy sor más módszer ismert, akár azt is kihasználhatod, hogy mivel BitmapData-ba rajzol, ezért annak lehet ún. alfa csatornája, ill. az objektumot filterezheted, "palettázhatod" stb.

    ha mondjuk Photoshopban össze tudod rakni az elképzelésedet, akkor itt is meg lehet csinálni, de mint írtam, a jelenlegi formájában elég erősen épít a "feketére", ezért nem lehet "egyszerűen" a hátteret cserélni, vagy, ha lehet, akkor sem biztos, hogy azt a hatást fogod kapni, amit szeretnél,

    szerintem,
    Mutasd a teljes hozzászólást!
  • Köszönöm szépen a tanácsodat.A nagy hévbe nem is gondoltam arra ,hogy a linket írjam be és nem feltöltsem a zipet.Ezért bocsánatot kérek.Már egy hete ez foglalkoztat
    most tanácsodat fogom emészteni:))Jelenkezek majd ha sikerült és ha nem akkor is!

    Üdvözlettel Miklós
    Mutasd a teljes hozzászólást!
  • tfh. csak tanácsot vársz,

    attól függetlenül, hogy az swf-eken kint van az oldal címe linkként, hogy honnan is van, szerintem jobb lett volna, ha megadod a segédlet közvetlen linkjét (100,000 Glowing 3D Particles Run Smoothly in Flash Player 10.1) is, hogy ne kelljen keresgélni, bár nyilván könnyen rátalálható, hiszen van az oldalon kereső, stb. meg aki otthon van a témában az ismeri ezt az oldalt, bla-bla-bla...

    egyrészt azért, mert ott talán esetleg kaphatnál valami segítséget, hátha írnak arról is, amit szeretnél, másrészt a hozzászólóknak is adhat támpontot, anélkül, hogy esetleg letöltenék a "csomagot", stb.

    nem okoskodni akarok, de a segédlet címéből: "100,000 Glowing 3D Particles Run Smoothly in Flash Player 10.1" már eleve lehet tudni, hogy nem fogod tudni egyszerűen megoldani, ill. ha "sikerülne" is, akkor nem biztos, hogy vizuálisan azt a hatást fogod kapni, amire számítasz,

    a kulcsszó: a "glowing"

    ezt az effektet úgy szokás megoldani, hogy az előző fázisok eredményét ColorTransform-mal kicsit "visszaveszik" (azaz mind az R, G, B komponensek értékét csökkentik valahány százalékkal), majd az így kapott képet egy BlurFilter -rel elmossák, és erre "rajzolják" az új fázist, értelemszerűen az egész "rajzolás" egy BitmapData példányba megy, aminek persze a létrehozásakor megadhatsz kitöltési színt, úgyis mondatjuk háttérszínt, viszont az a fentiek miatt el fog menni feketébe, minél kisebb a "szorzód" a ColorTransform-nál, annál gyorsabban,

    nyilván használhatnál más effektet is, azaz van beépített GlowFilter, viszont igazából az is a gond, hogy maguknak a részecskéknek a kirajzolásánál eleve a feketéhez viszonyítanak, azaz ezt a részt is át kellene írnod,

    csinálhatod persze azt is, hogy  magát a "vége képet" transzformálod a neked tetsző  háttérszínhez (a feketét "felhúzva" arra), viszont, szinte biztos, hogy belefogsz futni a már említett "vizuális" problémába, mivel ez az effekt (a glow) igazából csak sötét háttéren él meg, azaz akkor, ha a "háttérhez" képest nagy a fényerő kontraszt,


    szerkesztve: nyilván csinálhatod azt is, hogy "hagyományosan" beállítod a háttérszínt (ezt megteheted a beágyazásnál is) és a részecskék kontérenének a blendMode property-jét olyan értékre állítod, ami kihozza a neked tetsző hatást (pld. BlendMode.ADD-ra, BlendMode.SCREEN-re, ...), azaz, hogy a részecskék "feketéje" "ne írja felül" a háttérszínt, talán ez a legegyszerűbb "megoldás",

    meg nyilván csinálhatod azt is, hogy utólag "lelyukasztod" a részecske réteget, stb.
    Mutasd a teljes hozzászólást!
  • És mindezért milyen díjazásra gondolsz?
    Mutasd a teljes hozzászólást!
  • Szeretném az animáció hátterét más színre változtatni vagy átlátszó hátterűre,hogy az swf beillesztésénél ne látszódjon a háttér.

    Üdvözlettel Miklós
    Mutasd a teljes hozzászólást!
    Csatolt állomány
Címkék
abcd