Swf.hu 2.0 címlap

Register or log in - lost password?

Swf.hu Twitter :: Swf.hu RSS

  • Index
  • Hírek
  • Fejlesztés
  • Flash Galéria
  • Fórum (beta)
  • Segédletek
  • Linkek
  • Állás/karrier
  • Könyvek
Swf.hu 2.0 fórum » Flash fejlesztés » ActionScript 3
[lezárva]

Általános Flash HELP - AS3

(582 hozzászólás) (69 voices)
  • Elindította apapp 1 év
  • Legutóbbi válasz szerzője Reider

Címkék:

  • 3D
  • actionscript 3
  • appendText
  • as3
  • beágyazás
  • broadcast
  • combobox komponens
  • destruktor
  • display blending
  • Error #2007
  • fl.transitions.Tween
  • flash
  • FLVPlayback
  • getDefinitionByName
  • legfrissebb flash player verziószám
  • listItemRenderer
  • netconnection
  • NetStream
  • RED5
  • Security sandbox
  • serial port
  • setInterval
  • socket
  • SoundTransform
  • xml
« Előző123…24Következő »
  1. danmail
    offline
    Tag

    Helló!
    Nemrég kezdtem ismerkedni az as3-al és arra lennék kíváncsi, hogy az as3 milyen lehetőségeket biztosít egy MOUSE_OVER eseménnyel ellátot mc-n belüli gomb működésére. Mert ugye ha a gomb fölé viszem az egeret akkor érvénybe lép az őt tartalmó mc MOUSE_OUT eseménye.
    Ezt as2-ben általában hitTestel oldottam meg de reménykedem, hogy as3ban van jobb megoldás.

    1 év íródott # Válasz erre
  2. Zoly
    offline
    Tag

    Működött!

    Nagyon szépen köszönöm a segítséget, jövőre megyek Flasht tanulni hogy ne Titeket fárasszalak :)

    1 év íródott # Válasz erre
  3. Genin
    offline
    Tag

    re: Zoly
    az fla-d legkülső részében (tehát menj ki minden mc-ből) csinálj egy új layer-t a timeline-on, az első frame-re klikkelj rá azon a layer-en, majd nyomj egy F9-et, és az actions ablakba írd be ezt:

    stage.addEventListener(MouseEvent.CLICK, clk);
     
    function clk(event:MouseEvent):void{
    	var url:String = root.loaderInfo.parameters.clickTAG;
    	var window:String = root.loaderInfo.parameters.clickTARGET;
    	var request:URLRequest = new URLRequest(url);
     
    	navigateToURL(request, window);
    }

    egyébként ami kódot adtak neked, az as2-ben íródott, ez meg az as3 topic, szóval abban írtam meg :) erre figyelj! ha az as2-es kódot akarod használni, akkor azt arra az mc-re kell írnod, amiben a banner van. ráírni úgy tudod, hogy simán kijelölöd az mc-t, és (ha nem volna actions ablak, akkor F9 majd) beírod a kódod.

    és persze csak akkor fog megfelelően működni, ha meg is kapja a mozi a változókat a html beágyazásnál!

    1 év íródott # Válasz erre
  4. Zoly
    offline
    Tag

    Sziasztok, lenne egy nagyon buta kérdésem. Nem értek a Flashhez, de az élet úgy hozta, hogy össze kellett raknom egy bannert. Nagynehezen sikerült is, de most azt az utasítást kaptam, hogy toljam bele ezt a kódot:

    on (release) { getURL(_root.clickTAG, _root.clickTARGET); }

    Kérlek segítsetek rájönnöm hogyan és hova kell ezt beillesztenem? CS5-ös Flasht használok és a scriptekhez semmit nem értek, azt sem tudom mit és hol keressek.

    Segítségeteket előre is köszönöm!

    Zoly

    1 év íródott # Válasz erre
  5. mcmester21
    offline
    Tag

    re: mcmester21

    Sikerült megoldani.
    ColorTransform-ot kell definiállni és kész is.

    1 év íródott # Válasz erre
  6. mcmester21
    offline
    Tag

    Sziasztok!
    Szeretném megoldani, hogy az as3-as flash animációmban, egy gomb lenyomására, megváltozzon egy movie clipben lévő kör szine. Mivel tudnám ezt megoldani?
    Köszönöm elöre is.

    1 év íródott # Válasz erre
  7. grizzly
    offline
    Tag

    re: sombrioli

    A flash player 10 elootig nem tud irni alapbol file-ba, php-val tudsz ilyet peldaul, vagy air,
    Flash Player 10:
    http://www.mikechambers.com/blog/2008/08/20/reading-and-writing-local-files-in-flash-player-10/

    1 év íródott # Válasz erre
  8. sombrioli
    offline
    Tag

    Sziasztok!

    lehet adatokat kimenteni flashből egy xml fileba?

    1 év íródott # Válasz erre
  9. szbzs
    offline
    Moderátor

    re: Lebike
    SimpleButton esetén 4 állapotod van: upState, overState, downState, hitTestState, mindegyikhez külön DisplayObject tartozik/hat, ezért nem megy úgy, ahogy szeretted volna (lsd. pld. http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/SimpleButton.html#upState )

    1 év íródott # Válasz erre
  10. Lebike
    offline
    Tag

    Köszönöm !
    Bár alapból nem oldotta meg a problémát, viszont az utolsó mondatod után jöttem rá, hogy nem is MC-ben volt, hanem Button-ban. Átírtam MC-re, akkor már ment.
    Ez viszont egyből felveti bennem, hogy akkor Button-nal miért nem ment? Lehet, hogy nem importáltam be valamit a gombokhoz?
    Most ezek vannak importálva:

    import flash.display.MovieClip;
    import flash.display.SimpleButton;
    import flash.events.MouseEvent;
    import flash.text.*;

    1 év íródott # Válasz erre
  11. Suszi
    offline
    Tag

    re: Lebike
    A var myText:Textfield; nem kell az elejére.

    var am:amator = new amator();
    addChild(am);
    am.myText.text = "uj txt";
    trace(am.myText.text);

    amator mc-ben pedig csak egy myText nevű dinamikus text van.

    1 év íródott # Válasz erre
  12. Lebike
    offline
    Tag

    Lenne még egy kérdésem.
    Van egy MC-m, benne egy dynamic text, mely neve myText. Majd meg is hívom a MC-et a library-ból:

    var myText:Textfield; //ezzel próbáltam deklarálni mi is a szövegdoboz
    var am:amator=new amator(); //a linkage rendben van
    addChild(am); // meg is jelenik a képernyőn.
    am.myText.text="hehe"
    Viszont ezek után bárhogy írom be, null objektumként kezeli a myText-et(Cannot access a property or method of a null object reference.)
    Hogyan kell hivatkozni ezekre?

    Köszi,
    Balázs

    1 év íródott # Válasz erre
  13. Lebike
    offline
    Tag

    Sziasztok !

    Van több gombom, amit a színpadon illesztek egymás alá. Van pár ami 40 pixel magas, illetve mely 33. Ha azonos méretűt rakok egymás alá pontosan egymáshoz illesztve, nincs semmi gond, az első X értéke 0, majd 40, majd 80 és így tovább. Viszont, ha egy 33 pixeleset beékelek, a flash nem 33 pixelt ad hozzá az előző Y értékhez, hanem 3-4 pixellel többet. például, ha két 40 pixel magasat és egy 33-asat rakok, akkor ez utóbbira nem (0+40+33) 73 Y értéket ír, hanem 76,5-öt. Ez miért van? (CS5; a gombok movie clipben vannak)

    köszönöm,
    Balázs

    1 év íródott # Válasz erre
  14. Ted
    offline
    Tag

    re: szbzs
    Köszi! Valószínűleg erről van szó, de nincs a kódban komment, én meg alapvetően PHP meg JS programozó vagyok, így minden volt csak evidens nem. ;)
    Megkérdezem ott, hátha, bár nekem teljesen ledobta az agyam a gépszíjat a problémán. (Nem is vettem elő 2 hétig az ügyet...)

    1 év íródott # Válasz erre
  15. szbzs
    offline
    Moderátor

    re: azazdeaz
    milyen számrendszerben 1668 számjegyű? tízesben?
    szerintem is más úton kellene elindulnod, de ha nagyon ragaszkodsz hozzá, akkor csinálhatod pld.:
    1) olyan számrendszerben írod fel, amelyik "belefér" az URL-ben nem kódolandóakba, hogy ne "hosszíts" pluszban, azaz a számrendszered használhatja tudtommal a A..Za..z0..9-+~._ karaktereket, ez összesen 26 + 26 + 10 + 5 = 67 jel, ha jól számoltam, azaz így a hosszat kb. a felére csökkentheted (1 / log67 ~ 0.5476...), itt is még az lehet a gondod, hogy tudtommal nincs az "aktuális RFC"-ben korlátozva a hossz, ez böngésző ill. szerver függő, ha jól olvasom pld. a szerver esetleg egy "414 Request-URI Too Long" státuszkódot ad vissza, ha nem tudja feldolgozni, bár swfaddress használatakor a szerver "nem számít", ha jól gondolom...
    2) megpróbálod "tömöríteni" valamilyen ismert algoritmussal (RLE, zip, ...), esetleg kipróbálhatod a ByteArray compress/uncompress-t,
    3) ...

    szerintem inkább szerveroldalon tárold a "játékállást", és arra generálj valamilyen egyedi azonosítót majd azt add vissza...

    1 év íródott # Válasz erre
  16. Archor
    offline
    Tag

    Sziasztok!

    Köszönöm az előző segitségeket. Viszont most ismét beleakadtam egy fejtörőbe, amit nem tudok megoldani. A lényeg, hogy használnom kell egy ingyenes scrollbart egyéni igények miatt - hogy miért, ne kérdezzétek. :S
    A gond az, hogy bár frankón működik a scroll, a görgőre nem reagál. Találtam több segédletet is hogyan lehet aktivvá tenni a görgőt flashben (pl a handleMouseWheel funkció). Külön, ha magam készitem el a scrollt, nincs is gond, viszont ebben nem tudom múködésre birni, pedig próbáltam pár variációt.

    Nagyon megköszönném ha tundátok nekem segiteni ebben.
    Biztos ami biztos mellékelem a kódot is.

    var sd:Number;
    var sr:Number;
    var cd:Number;
    var cr:Number;
    var new_y:Number;
    var drag_area:Rectangle;
    var flashmo_content:MovieClip;
    var flashmo_content_area:MovieClip;
    var scrolling_speed:Number; // 0.00 to 1.00
     
    function scrolling( ct:String, ct_area:String, speed:Number ):void
    {
    	scrolling_speed = speed;
    	if( scrolling_speed < 0 || scrolling_speed > 1 ) scrolling_speed = 0.50;
     
    	flashmo_content = parent[ct];
    	flashmo_content_area = parent[ct_area];
     
    	flashmo_content.mask = flashmo_content_area;
    	flashmo_content.x = flashmo_content_area.x;
    	flashmo_content.y = flashmo_content_area.y;
     
    	sr = flashmo_content_area.height / flashmo_content.height;
    	flashmo_scroller.height = flashmo_scrollable_area.height * sr;
     
    	sd = flashmo_scrollable_area.height - flashmo_scroller.height;
    	cd = flashmo_content.height - flashmo_content_area.height;
    	cr = cd / sd * 1.01;
     
    	drag_area = new Rectangle(0, 0, 0, flashmo_scrollable_area.height - flashmo_scroller.height);
     
    	if ( flashmo_content.height <= flashmo_content_area.height )
    	{
    		flashmo_scroller.visible = flashmo_scrollable_area.visible = false;
    	}
     
    	flashmo_scroller.addEventListener( MouseEvent.MOUSE_DOWN, scroller_drag );
    	flashmo_scroller.addEventListener( MouseEvent.MOUSE_UP, scroller_drop );
    	this.addEventListener( Event.ENTER_FRAME, on_scroll );
    }
     
    function scroller_drag( me:MouseEvent ):void
    {
    	me.target.startDrag(false, drag_area);
    	stage.addEventListener(MouseEvent.MOUSE_UP, up);
    }
     
    function scroller_drop( me:MouseEvent ):void
    {
    	me.target.stopDrag();
    	stage.removeEventListener(MouseEvent.MOUSE_UP, up);
    }
     
    function up( me:MouseEvent ):void
    {
    	flashmo_scroller.stopDrag();
    }
     
    function on_scroll( e:Event ):void
    {
    	new_y = flashmo_content_area.y + flashmo_scrollable_area.y * cr - flashmo_scroller.y  * cr;
    	flashmo_content.y += ( new_y - flashmo_content.y ) * scrolling_speed;
    }

    Ez a kód magáé a scrollbar-é. Egyetlen mc-n van a scrollbar és a scrollable_area is.
    És ezzel a kóddal birom működésre:

    biografia_scroll_bar.scrolling("biografiascroll_text", "biografia_text_mask", 0.50);

    Ez ugye azon az mc-n van, ahová magát a a scrollbart és a scrollozni kivánt cuccot rakom. Nah valahova ide kellene bepréselni a görgős kódot, de nagyon megakadtam, és már azt sem tudom milyen kód lenne jó. :(
    Help please!

    1 év íródott # Válasz erre
  17. vizoli
    offline
    Moderátor

    re: azazdeaz
    Omg, 1668 szamjegyu..ezt inkabb gondold at ujra!
    Nezz esetleg leirasokat, hogyan szokas tarolni a programok allasat!

    1 év íródott # Válasz erre
  18. azazdeaz
    offline
    Tag

    Heló! Van egy 1668 számjegyű számom, amiben a program állását lehet tárolni. Ezt szeretném swf adressbe használni, hogy a bizonyos állásokat is lehessen linkelni. Nem tudjátok, hogy lehetne megoldani egy ekkora szám rövidebbé konvertálását? Írtam egy funkciót ami olyan számrendszerbe konvertál ahány karaktert kap egy tömbbe és vissza, de persze ehhez fel kell darabolnom a számot akkora részekre amit szám-ként lehet kezelni, és ez így már csak ha az elválasztó karaktereket nézem is túl hosszú. Vagy arra van valami trükk, szám-ként lehessen kezelni egy ilyen hosszú számokból álló szöveget? Vagy teljesen máshogy kéne ezt a problémát megoldanom? A válaszokat előre is köszönöm!

    1 év íródott # Válasz erre
  19. szbzs
    offline
    Moderátor

    re: Archor
    gondolom balta nem erre gondolt, de mivel használod a buttonMode-ot és vélhetőleg MovieClip-ből származtatsz vagy annak leszármazottjából (hiszen címkékre hivatkozol, meg "hagyományos" elnevezési konvenciót használsz) szerintem teljesen felesleges eseménykezelőket írni (mármint az ROLL_OVER/ROLL_OUT-ra), hiszen van erre támogatás, lsd. a buttonMode leírásánál ( http://wwwmacr-sjc0.adobe.com/livedocs/flash/9.0/ActionScriptLangRefV3/flash/display/Sprite.html#buttonMode ) a MovieClip-re tett megjegyzést:
    "If you use the buttonMode property with the MovieClip class (which is a subclass of the Sprite class), your button might have some added functionality. If you include frames labeled _up, _over, and _down, Flash Player provides automatic state changes (functionality similar to that provided in previous versions of ActionScript for movie clips used as buttons). These automatic state changes are not available for sprites, which have no timeline, and thus no frames to label."

    azaz nevezd át a címkéidet out-ról _up-ra, over-ről _over-re, töröld az ezekre vonatkozó eseménykezelőket és láss csodát...

    1 év íródott # Válasz erre
  20. Archor
    offline
    Tag

    re: balta

    Szia!
    Ezt az eseményfigyelős dolgot tudnád kicsit konkretizálni a belinkelt kód alapján?

    1 év íródott # Válasz erre
  21. balta
    offline
    Tag

    re: Archor
    legkozelebb probald meg bekapcsolni a perimt debugger funkciot a publish settings/flash lapon.

    Az esemenyfigyeloket pedig nem kell minden egyes objektumon meghivni, eleg csak a szulo objektumon, ami a te esetedben fooldalPage lehet.

    1 év íródott # Válasz erre
  22. Archor
    offline
    Tag

    Sziasztok!

    Megtaláltam a hibát, és talán ideje lenne szemüveget vennem -.-.
    csupán elirtam a target-et. tagert lett helyette. :D

    Azért jó tudni, hogy egy egész napos idegtépést tud okozni egy olyan hiba, amit egyébként a flash rosszul jelöl, mivel a hibát a newPage function-nél jelölte a debugger.

    Ezt csak azért irtam le, hogy ha esetleg másvalakinek is előjönne ez a hiba.

    1 év íródott # Válasz erre
  23. Archor
    offline
    Tag

    Sziasztok!

    Nagy szükségem lenne egy gyors segitségre. Most kezdek el igazán actionscript-tel foglalkozni, többnyire könyvekből, videotutorialokból képzem magam. Egész jól megy. Jobban mondva ment, egészen eddig :P.
    Épp egy flash site-ot készitek, tisztán próba miatt, hogy ellenőrizzem magam, és új dolgokat találjak, amiket még jó lenne megtanulni.

    A lényeg a következő.
    A site különböző oldalait egy-egy mc-ben tárolom, tehát AS3-al akarnám őket a stage-re helyezni. A főoldal elhelyezésével nem is volt gond, az eltüntetésével sem, viszont mikor az új oldalt behivnám, akkor kapok egy hibát. Ez lenne az:

    TypeError: Error #2007: Parameter child must be non-null.
    at flash.display::DisplayObjectContainer/addChild()
    at site_fla::MainTimeline/newPage()

    Egyébként a belső oldalak mind tökéletesen működnek. Error üzenetet nem is kapok, csak ezt az output hibát. Több fórumot elolvastam már, több dolgot ki is próbáltam, de eddig még nem segitett semmi. Remélem ti tudtok segiten. Nagyon hálás lennék érte.

    A teljes kód, ahol a hiba van:

    stop();
     
    var currentPage:MovieClip = fooldal_mc;
     
    var fooldalPage:pageFooldal = new pageFooldal();
    var biografiaPage:pageBiografia = new pageBiografia();
    var szolgaltatasPage:pageSzolgaltatas = new pageSzolgaltatas();
    var referenciaPage:pageReferencia = new pageReferencia();
    var kapcsolatPage:pageKapcsolat = new pageKapcsolat();
    var joginyilatkozatPage:pageJoginyilatkozat = new pageJoginyilatkozat();
     
    fooldal_mc.targetMC = fooldalPage;
    biografia_mc.tagertMC = biografiaPage;
    szolgaltatas_mc.targetMC = szolgaltatasPage;
    referencia_mc.targetMC = referenciaPage;
    kapcsolat_mc.targetMC = referenciaPage;
    joginyilatkozat_mc.targetMC = joginyilatkozatPage;
     
    fooldalPage.x = biografiaPage.x = szolgaltatasPage.x = referenciaPage.x = kapcsolatPage.x = joginyilatkozatPage.x = 20;
    fooldalPage.y = biografiaPage.y = szolgaltatasPage.y = referenciaPage.y = kapcsolatPage.y = joginyilatkozatPage.y = 231;
     
    addChild(fooldalPage);
     
    fooldal_mc.buttonMode = true;
    biografia_mc.buttonMode = true;
    szolgaltatas_mc.buttonMode = true;
    referencia_mc.buttonMode = true;
    kapcsolat_mc.buttonMode = true;
    joginyilatkozat_mc.buttonMode = true;
    fullscreen_mc.buttonMode = true;
    soundcontrol_mc.buttonMode = true;
     
    fooldal_mc.addEventListener(MouseEvent.ROLL_OVER, buttonOver);
    biografia_mc.addEventListener(MouseEvent.ROLL_OVER, buttonOver);
    szolgaltatas_mc.addEventListener(MouseEvent.ROLL_OVER, buttonOver);
    referencia_mc.addEventListener(MouseEvent.ROLL_OVER, buttonOver);
    kapcsolat_mc.addEventListener(MouseEvent.ROLL_OVER, buttonOver);
    joginyilatkozat_mc.addEventListener(MouseEvent.ROLL_OVER, buttonOver);
    fullscreen_mc.addEventListener(MouseEvent.ROLL_OVER, buttonOver);
    soundcontrol_mc.addEventListener(MouseEvent.ROLL_OVER, buttonOver);
     
    fooldal_mc.addEventListener(MouseEvent.ROLL_OUT, buttonOut);
    biografia_mc.addEventListener(MouseEvent.ROLL_OUT, buttonOut);
    szolgaltatas_mc.addEventListener(MouseEvent.ROLL_OUT, buttonOut);
    referencia_mc.addEventListener(MouseEvent.ROLL_OUT, buttonOut);
    kapcsolat_mc.addEventListener(MouseEvent.ROLL_OUT, buttonOut);
    joginyilatkozat_mc.addEventListener(MouseEvent.ROLL_OUT, buttonOut);
    fullscreen_mc.addEventListener(MouseEvent.ROLL_OUT, buttonOut);
    soundcontrol_mc.addEventListener(MouseEvent.ROLL_OUT, buttonOut);
     
    function buttonOver(e:MouseEvent):void
    {
    	e.currentTarget.gotoAndPlay("over");
    }
     
    function buttonOut(e:MouseEvent):void
    {
    	e.currentTarget.gotoAndPlay("out");
    }
     
    fooldal_mc.addEventListener(MouseEvent.CLICK, newPage);
    biografia_mc.addEventListener(MouseEvent.CLICK, newPage);
    szolgaltatas_mc.addEventListener(MouseEvent.CLICK, newPage);
    referencia_mc.addEventListener(MouseEvent.CLICK, newPage);
    kapcsolat_mc.addEventListener(MouseEvent.CLICK, newPage);
    joginyilatkozat_mc.addEventListener(MouseEvent.CLICK, newPage);
     
    function newPage(e:MouseEvent):void
    {
    	removeChild(currentPage.targetMC);
    	currentPage = MovieClip(e.currentTarget);
    	addChild(currentPage.targetMC);
    	currentPage.targetMC.gotoAndPlay(1);
    }

    Elképzelhető hogy "ronda" maga a programozás és lehetne szebb is, de mint mondtam ez az első komolyabb próbálkozásom. Egyébként minden kioktatást szivesen veszek :).

    Köszönöm előre is a segitséget.

    1 év íródott # Válasz erre
  24. mcmester21
    offline
    Tag

    re: Genin

    Sima Lightboxot találtam, csak nekem swfhez kellene olyan amit lehet marketing célra is használni. Ilyet kerestem, de még nem találtam.
    Csináltam egy sima preloader-t:

    stop();
     
    this.addEventListener(Event.ENTER_FRAME, loading);
     
    function loading(e:Event):void{
     
    var total:Number = this.stage.loaderInfo.bytesTotal;
    var loaded:Number = this.stage.loaderInfo.bytesLoaded;
     
    bar_mc.scaleX = loaded/total;
    loader_txt.text = Math.floor((loaded/total)*100)+ "%";
     
    if (total == loaded){
    nextFrame();
    this.removeEventListener(Event.ENTER_FRAME, loading);
    }
     
    }

    Müködni müködik, csak ha felrakom egy honlapra akkor várni kell elég sok idöt és utánna elkezd számolni 70%-tól, mi lehet a gond? Miért nem számol 0-tól?

    1 év íródott # Válasz erre
  25. Genin
    offline
    Tag

    re: mcmester21
    nem találod a lightbox kódját???
    http://www.lokeshdhakar.com/projects/lightbox2/

    1 év íródott # Válasz erre

A téma RSS kivonata

« Előző123…24Következő »

Téma lezárva

Zárolt topik, további üzenetek írása nem lehetséges.



Copyright © 2001-4ever: Swf.hu 2.0 – flash és webfejlesztés beta - Minden jog fenntartva. Powered by WordPress , BBpress