SWiSH Forum
Forum użytkowników programów SWiSH

SWiSH Max - Parę pytań

jac_szcz - Pon 07 Wrz, 2009 20:41
Temat postu: Parę pytań
Mam dość banalne pytania więc z góry proszę o wyrozumiałość.
W jaki sposób mogę zrobić button z grafiki, który po kliknięciu zwiększy jej rozmiar?
Czy do tego służy opcja has separate hit state?

Szymciosek - Pon 07 Wrz, 2009 21:09

zrób tak, stwórz shape o nazwie "lol" o wymiarach 50x50, zaznacz target, i daj taki skrypt w scene_1

onSelfEvent(load){
lol.onRelease = function(){
this._width = 150
this._height = 150
}
}

to jest jakiś tam podstawowy

roland - Wto 08 Wrz, 2009 06:55

jac_szcz napisał/a:
Czy do tego służy opcja has separate hit state?


Pozycja Has separate hit state, spowoduje dodanie nowej pozycji w panelu Konspekt, pod nazwą Hit State. Umożliwi to zmianę obszaru na który przycisk ma reagować. Domyślnie jest to obiekt, swoim obszarem obejmujący wszystkie obiekty, z których przycisk został utworzony. Jeżeli jednak zmienimy, kształt obiektu umieszczonego w części Hit State, to zmienimy obszar na którym po umieszczeniu kursora myszki, przycisk przejdzie w stan Over.

shastaan - Wto 08 Wrz, 2009 09:26

Moim zdaniem nie chcesz wcale zrobić buttonu tylko movie clip więc hit state Ci, zgodnie z tym co napisał Roland, nie jest potrzebny.
Szymciosek też oczywiście podał prawidłowe rozwiązanie ale trochę sztywne ;]

Ja lubię robić to w sposób, który możesz zobaczyć w załączniku. 2 przyklady zastosowania tego samego patentu kontrolowane odrobinką skryptu do navigacji na timeline.

W razie pytań...
...pytaj :D

Szymciosek - Wto 08 Wrz, 2009 13:09

shastaan, to co zrobiłeś można dokładnie tak samo zaprogramować w samym kodzie, a to co dałem to przykład na szybko bo pytał jak coś powiększyć.
shastaan - Wto 08 Wrz, 2009 13:39

Można zrobić efekt move z easingiem na kodzie? O ile wiem to tylko za pomocą onenterframe a to lipa. Jeśli się mylę to chętnie posłucham :P
Szymciosek - Wto 08 Wrz, 2009 14:17

nie koniecznie lipa, przecież po wykonanej akcji możesz wywalić onenterframe :P

no i wcale nie musisz dawać
onSelfEvent(EnterFrame){}

shastaan - Wto 08 Wrz, 2009 14:32

No to dajesz przyklad bo ja nie mam pomyslu innego niz enterframe
Szymciosek - Wto 08 Wrz, 2009 20:48

stwórz kwadrat 100x100, nazwa lol, zaznacz target i w scene_1 wklej

Kod:

onSelfEvent(load){   
    lol.onRelease = function(){
        onEnterFrame = function(){
            this._width += 150/9
            this._width *= 0.9
           
            this._height += 150/9
            this._height *= 0.9
           
            if (this._width >= 150){
                delete this.onEnterFrame;
            }
        }
    }
}


i teraz po kliknięciu kwadrat zmieni się do 150x150 łagodnie, i jak będzie szerokość 150px to wywali onenterframe, ale nie wiem czemu się przesuwa na dół nie chcę mi się nad tym teraz siedzieć.

shastaan - Wto 08 Wrz, 2009 23:11

no ale tu dale jest on enterframe, nawet jesli tylko do czasu klikniecia to zamulasz procesor
poza tym, usuwając enterfame po kliknieciu pozbawiasz sie powtarzalności efektu
dalej twierdze ze prosty move sprawdzi sie lepiej (nadal chętnie przyznam się do błędu gdy tylko go zobaczę ;] )


Powered by phpBB modified by Przemo © 2003 phpBB Group