/ Forside / Teknologi / Multimedie & design / Flash / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Flash
#NavnPoint
bentjuul 4251
molokyle 1978
Klaudi 1488
jhvp 1265
pallenoc 1160
katekismus 1020
Fnollerpi.. 790
slander 510
Dr.Disco 500
10  Flash77 500
Kreative forslag søges...
Fra : MZH


Dato : 02-03-02 22:14

Hej gruppe.

Jeg har en idé, som jeg vil høre om man kan lave i Flash:

Jeg har to punkter på min stage, de ligger med ca. 100 pixels vandret
mellemrum, og de kører begge op og ned hele tiden. De kører mellem
y-værdier på 25 og 53.

Jeg vil gerne forbinde de to punkter med en streg, som altså vil komme
til at ændre hældning hele tiden, fordi de to punkter kører op og ned
uafhængigt af hinanden.

Jeg skal altså finde en måde at fastgøre den ene ende af stregen til
det ene punkt og den anden til det andet punkt...

Jeg kan selvfølgelig gøre det "manuelt" og ændre hældningen på stregen
frame for frame, men idéen er, at de to punkter kører op og ned med
forskellig hastighed (den ene har en "frekvens" på 25 frames, den
anden på 30), så hældningen på stregen skal beregnes ud fra de to
punkters y-koordinater.

Jeg har vredet min hjerne, men ikke fundet nogen måde at knække denne
nød på - derfor kaster jeg spørgsmålet ud her. Håber det kan forstås.

Mvh.

Mikkel

 
 
Bo Kalvslund (06-03-2002)
Kommentar
Fra : Bo Kalvslund


Dato : 06-03-02 21:46

Lav et movieclip:
indsæt et grafikobjekt i movieclippet: en cirkel - giv det et instance-navn
ex cirkel
indsæt keyframe i frame 12 og i frame 25
omdan til motion tween imellem de tre keyframes

Dupliker movieclippet i library
flyt keyframes til frame 15 og 30

Indsæt de to mc i hoved scene.

giv dem instance navne : c01 og c02


Lav et andet movieclip
tegn en linje udgående fra kryds og 10 pixels vandret mod højre
tykkelse på linje skal være hairline for at modvirke scalering af tykkelse

indsaet mc i hovedscene - placer i centrum af c01
giv instancenavn : line

højreklik på line og indsaet flg action:

onClipEvent (load) {
scale = this._xscale;
xdist = Math.abs(_root.c02._x-_root.c01._x);
}
onClipEvent (enterFrame) {
setProperty (this, _y, _root.c01.cirkel._y+_root.c01._y);
if (_root.c01.cirkel._y<_root.c02.cirkel2._y) {
laengde = Math.sqrt(Math.pow((xdist),
2)+Math.pow((_root.c02.cirkel2._y-_root.c01.cirkel._y), 2));
}
else
{
laengde = Math.sqrt(Math.pow((xdist),
2)+Math.pow((_root.c01.cirkel._y-_root.c02.cirkel2._y), 2));
}


setProperty (this, _xscale, scale*(laengde/10));
// trace((180/Math.PI)*Math.acos(xdist/laengde));
rotate = (180/Math.PI)*Math.acos(xdist/laengde);
if (_root.c01.cirkel._y>_root.c02.cirkel2._y) {
rotate = -1*rotate;
}
//trace(rotate);
setProperty (this, _rotation, rotate);
}




Resultat kan ses her:

http://home6.inet.tele.dk/bokalvsl/interactiv_linje.html


Med venlig hilsen

Bo Kalvslund





MZH (07-03-2002)
Kommentar
Fra : MZH


Dato : 07-03-02 12:48

Tusind tak for svaret. Jeg har gjort som du skrev, men det virker ikke
helt. Linien hænger kun fast i den ene cirkel (c01)...

Vil du evt. sende mig din fla-fil, så jeg kan se, hvad jeg har gjort
galt?

På forhånd mange tak!

Mvh.

Mikkel

"Bo Kalvslund" <bokalvsl@post6.tele.dk> wrote in message news:<3c867e9c$0$80964$edfadb0f@dspool01.news.tele.dk>...
> Lav et movieclip:
> indsæt et grafikobjekt i movieclippet: en cirkel - giv det et instance-navn
> ex cirkel
> indsæt keyframe i frame 12 og i frame 25
> omdan til motion tween imellem de tre keyframes
>
> Dupliker movieclippet i library
> flyt keyframes til frame 15 og 30
>
> Indsæt de to mc i hoved scene.
>
> giv dem instance navne : c01 og c02
>
>
> Lav et andet movieclip
> tegn en linje udgående fra kryds og 10 pixels vandret mod højre
> tykkelse på linje skal være hairline for at modvirke scalering af tykkelse
>
> indsaet mc i hovedscene - placer i centrum af c01
> giv instancenavn : line
>
> højreklik på line og indsaet flg action:
>
> onClipEvent (load) {
> scale = this._xscale;
> xdist = Math.abs(_root.c02._x-_root.c01._x);
> }
> onClipEvent (enterFrame) {
> setProperty (this, _y, _root.c01.cirkel._y+_root.c01._y);
> if (_root.c01.cirkel._y<_root.c02.cirkel2._y) {
> laengde = Math.sqrt(Math.pow((xdist),
> 2)+Math.pow((_root.c02.cirkel2._y-_root.c01.cirkel._y), 2));
> }
> else
> {
> laengde = Math.sqrt(Math.pow((xdist),
> 2)+Math.pow((_root.c01.cirkel._y-_root.c02.cirkel2._y), 2));
> }
>
>
> setProperty (this, _xscale, scale*(laengde/10));
> // trace((180/Math.PI)*Math.acos(xdist/laengde));
> rotate = (180/Math.PI)*Math.acos(xdist/laengde);
> if (_root.c01.cirkel._y>_root.c02.cirkel2._y) {
> rotate = -1*rotate;
> }
> //trace(rotate);
> setProperty (this, _rotation, rotate);
> }
>
>
>
>
> Resultat kan ses her:
>
> http://home6.inet.tele.dk/bokalvsl/interactiv_linje.html
>
>
> Med venlig hilsen
>
> Bo Kalvslund

Bo Kalvslund (07-03-2002)
Kommentar
Fra : Bo Kalvslund


Dato : 07-03-02 18:37

Hej Mikkel

Jeg glemte at skrive, at i det andet movieclip (c02) skal det indsatte
cirkelgrafik have et andet instancenavn : "cirkel2" - jvf.
action..........._root.c02.cirkel2.....

Jeg håber det hjælper dig.

MVH
Bo


"MZH" <mikkel@mzh.dk> skrev i en meddelelse
news:58649037.0203070348.3bd8ad41@posting.google.com...
> Tusind tak for svaret. Jeg har gjort som du skrev, men det virker ikke
> helt. Linien hænger kun fast i den ene cirkel (c01)...
>
> Vil du evt. sende mig din fla-fil, så jeg kan se, hvad jeg har gjort
> galt?
>
> På forhånd mange tak!
>
> Mvh.
>
> Mikkel
>
> "Bo Kalvslund" <bokalvsl@post6.tele.dk> wrote in message
news:<3c867e9c$0$80964$edfadb0f@dspool01.news.tele.dk>...
> > Lav et movieclip:
> > indsæt et grafikobjekt i movieclippet: en cirkel - giv det et
instance-navn
> > ex cirkel
> > indsæt keyframe i frame 12 og i frame 25
> > omdan til motion tween imellem de tre keyframes
> >
> > Dupliker movieclippet i library
> > flyt keyframes til frame 15 og 30
> >
> > Indsæt de to mc i hoved scene.
> >
> > giv dem instance navne : c01 og c02
> >
> >
> > Lav et andet movieclip
> > tegn en linje udgående fra kryds og 10 pixels vandret mod højre
> > tykkelse på linje skal være hairline for at modvirke scalering af
tykkelse
> >
> > indsaet mc i hovedscene - placer i centrum af c01
> > giv instancenavn : line
> >
> > højreklik på line og indsaet flg action:
> >
> > onClipEvent (load) {
> > scale = this._xscale;
> > xdist = Math.abs(_root.c02._x-_root.c01._x);
> > }
> > onClipEvent (enterFrame) {
> > setProperty (this, _y, _root.c01.cirkel._y+_root.c01._y);
> > if (_root.c01.cirkel._y<_root.c02.cirkel2._y) {
> > laengde = Math.sqrt(Math.pow((xdist),
> > 2)+Math.pow((_root.c02.cirkel2._y-_root.c01.cirkel._y), 2));
> > }
> > else
> > {
> > laengde = Math.sqrt(Math.pow((xdist),
> > 2)+Math.pow((_root.c01.cirkel._y-_root.c02.cirkel2._y), 2));
> > }
> >
> >
> > setProperty (this, _xscale, scale*(laengde/10));
> > // trace((180/Math.PI)*Math.acos(xdist/laengde));
> > rotate = (180/Math.PI)*Math.acos(xdist/laengde);
> > if (_root.c01.cirkel._y>_root.c02.cirkel2._y) {
> > rotate = -1*rotate;
> > }
> > //trace(rotate);
> > setProperty (this, _rotation, rotate);
> > }
> >
> >
> >
> >
> > Resultat kan ses her:
> >
> > http://home6.inet.tele.dk/bokalvsl/interactiv_linje.html
> >
> >
> > Med venlig hilsen
> >
> > Bo Kalvslund



MZH (09-03-2002)
Kommentar
Fra : MZH


Dato : 09-03-02 15:56

Hej.

Det fandt jeg også selv ud af efter at have nærlæst action-scriptet.

Endnu engang tak for hjælpen!

Mikkel

On Thu, 7 Mar 2002 18:36:48 +0100, "Bo Kalvslund"
<bokalvsl@post6.tele.dk> wrote:

>Hej Mikkel
>
>Jeg glemte at skrive, at i det andet movieclip (c02) skal det indsatte
>cirkelgrafik have et andet instancenavn : "cirkel2" - jvf.
>action..........._root.c02.cirkel2.....
>
>Jeg håber det hjælper dig.
>
>MVH
>Bo
>
>
>"MZH" <mikkel@mzh.dk> skrev i en meddelelse
>news:58649037.0203070348.3bd8ad41@posting.google.com...
>> Tusind tak for svaret. Jeg har gjort som du skrev, men det virker ikke
>> helt. Linien hænger kun fast i den ene cirkel (c01)...
>>
>> Vil du evt. sende mig din fla-fil, så jeg kan se, hvad jeg har gjort
>> galt?
>>
>> På forhånd mange tak!
>>
>> Mvh.
>>
>> Mikkel
>>
>> "Bo Kalvslund" <bokalvsl@post6.tele.dk> wrote in message
>news:<3c867e9c$0$80964$edfadb0f@dspool01.news.tele.dk>...
>> > Lav et movieclip:
>> > indsæt et grafikobjekt i movieclippet: en cirkel - giv det et
>instance-navn
>> > ex cirkel
>> > indsæt keyframe i frame 12 og i frame 25
>> > omdan til motion tween imellem de tre keyframes
>> >
>> > Dupliker movieclippet i library
>> > flyt keyframes til frame 15 og 30
>> >
>> > Indsæt de to mc i hoved scene.
>> >
>> > giv dem instance navne : c01 og c02
>> >
>> >
>> > Lav et andet movieclip
>> > tegn en linje udgående fra kryds og 10 pixels vandret mod højre
>> > tykkelse på linje skal være hairline for at modvirke scalering af
>tykkelse
>> >
>> > indsaet mc i hovedscene - placer i centrum af c01
>> > giv instancenavn : line
>> >
>> > højreklik på line og indsaet flg action:
>> >
>> > onClipEvent (load) {
>> > scale = this._xscale;
>> > xdist = Math.abs(_root.c02._x-_root.c01._x);
>> > }
>> > onClipEvent (enterFrame) {
>> > setProperty (this, _y, _root.c01.cirkel._y+_root.c01._y);
>> > if (_root.c01.cirkel._y<_root.c02.cirkel2._y) {
>> > laengde = Math.sqrt(Math.pow((xdist),
>> > 2)+Math.pow((_root.c02.cirkel2._y-_root.c01.cirkel._y), 2));
>> > }
>> > else
>> > {
>> > laengde = Math.sqrt(Math.pow((xdist),
>> > 2)+Math.pow((_root.c01.cirkel._y-_root.c02.cirkel2._y), 2));
>> > }
>> >
>> >
>> > setProperty (this, _xscale, scale*(laengde/10));
>> > // trace((180/Math.PI)*Math.acos(xdist/laengde));
>> > rotate = (180/Math.PI)*Math.acos(xdist/laengde);
>> > if (_root.c01.cirkel._y>_root.c02.cirkel2._y) {
>> > rotate = -1*rotate;
>> > }
>> > //trace(rotate);
>> > setProperty (this, _rotation, rotate);
>> > }
>> >
>> >
>> >
>> >
>> > Resultat kan ses her:
>> >
>> > http://home6.inet.tele.dk/bokalvsl/interactiv_linje.html
>> >
>> >
>> > Med venlig hilsen
>> >
>> > Bo Kalvslund
>


Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408925
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste