re: RoadkilleR78
Megtaláltam a hibát! :-)
CDATA-ba kell tenni a szöveget az xml-ben
re: RoadkilleR78
Megtaláltam a hibát! :-)
CDATA-ba kell tenni a szöveget az xml-ben
Hi,
Egy új problémával találkoztam. CS5-öt használok.
Xml-ből töltenék be szöveget, html szövegdobozba. De ha van a szövegben <b></b> tag, akkor az egész szöveget szétcseszi. Alapból egy sortöréssel indul, Spacing is kerül a szövegekre és ahol vége a boldnak, ott alapból kap egy sortörést a szöveg. Ha ugyanezt a szöveget stringként átadom a szövegdoboznak, akkor rendesen jelenik meg.
Ha kitracelem a node tartalmát, akkor ha nincs az adott node szövegében <b> akkor csak a szöveget írja ki, de ha már van bent <b> akkor kiírja a node nevét is és már ott is megjelenik a sortörés a </b>-nél
Erre valami ötlet?
re: rylehweb
Bal oldali Alt+Ctrt-t használd az AltGr helyett (a kettő mindenhol megfelel egymásnak). Egyébként vmi saját funkcióra foglalja a Flash az eredeti billentyűkombinációt (nem emlékszem melyikre) - ezt az Edit|Keyboard Shortcuts menüben kikeresheted és törölheted is.
re: reider
Működik, köszönöm.
Sziasztok!
Magyar XP ,HUN keyboard.hibatlan Flash cs3 mukodes,,de AC ben valo irogatas nem ok,pontosvesszore nem reagal ..
AltGr amugy minden masban funkcional de a flash ban nem aktiv.
Egy forras szerint at kell allitanom a keyboard-ot amcsira,,,,ez jarhato ut?
(munkahelyi gep,s nem varialhatok egy angol xp,es klavi beiktatasaval.)
Emellett VESZEK magyar nyelvu AC 2.0 ill 3.0 -as konyvet,ha esetleg vkinek van feleslegeben.
Koszonom a helpet,s kellemes napot:)
re: maxinteger
próbáld ki így:
htmlControl.domWindow.document.getElementsByTagName('html')[0].innerHTML
Hali
Valaki tudja, hogyan lehet a Flex-es HTML komponens által betöltött html tartalmat kiíratni?
Ha a HTML.htmlLoader.window.document -et íratom ki akkor csak egy DOM Object választ kapok,
ha meg ObjectUtil.toString(HTML.htmlLoader.window.document) formában íratom ki akkor meg minden tag minden paraméterét kinyomja ami egyrészt nem kell nekem, más részt a bufferben sem fér el így elég kis része lesz használható a kiíratásnak.
Előre is köszönöm
re: Lebike
Igen, pontosan errol beszeltem, hogy a listenereket kulon le kell allitanod, amikor nullozod az objektumot, mert ez nem tortenk meg automatikusan.
re: vizoli
Jelenleg csak próbálkozom, és szeretném megérteni a dolgokat, mielőtt belevágok abba amit akarok.
Szóval, két fájlom van, base classként a Base.as és egy másik, legyen a neve Proba.as.
A Proba.as csupán annyit csinál, hogy egy ENTER_FRAME eventtel (xx++) növeli az xx változóm (tehát egy eseményfigyelő működik).
Base.as-ben pedig egy-egy listener van ami a rolloutra és rolloverre ügyel egy a stage-en lévő objektumon. A rollover meghívja a Proba.as-t ( var proba:Proba=new Proba() ). Ekkor el is kezdi kiírni a trace az xx értékét. Szóval eddig minden rendben. Ezt szeretném leállítani a roullout eseménnyel, azaz, a Proba.as álljon le, ne számoljon tovább, tűnjön el, stb. A "proba" változót amihez rendeltem a Proba osztályt, le tudom null-ozni, viszont ettől még a Proba osztály tovább működik.
Szóval, hogyan lehet leállítani egy futásban lévő osztályt (vagy talán úgy helyesebb, hogy egy osztály példányát), egy másik osztályból?
Remélem így érthetőbb mit szeretnék.
Köszönöm.
re: Lebike
Nem teljesen ertem, de hatha.
Pl. amennyiben a letrehozott osztalynak vannak listenerjei, akkor azokat kulon le kell allitani, mert azok nem fognak torlodni attol, mert az objektumot null-ozod.
Jo volna, ha konkretan leirnad, hogy a null utan mi marad meg meg, aminek nem kellene..!
Igen, közben előhívtam a saját függvényemet, azaz keresek-kutatok órákon át, és rájöttem, hogy nem is azzal van a bajom, hogy ne tudnám le"null"-ozni. Pofonegyszerűnek tűnik, még sem találom a választ.
Szóval, két osztályom van, külön .as file-ban mindkettő. Egyik base-ként van megadva. Ez utóbbiban van a rollover és out. A gondom, hogy ha az egeret fölé viszem, sikeresen meghív egy példányt a másik osztályból, és az el is kezd működni. Viszont ezt nem tudom leállítani, ez a gondom.
Azt hittem a null-al el is tűnik és le is áll, közben csak -ha jól értelmeztem- a hivatkozást szünteti meg, hogy majd szemétkedhessen vele a szemétgyűjtő.
Szóval az lenne a kérdésem, ha meghívok (példányosítok, nem tudom melyik a helyes kifejezés) egy másik file-ban lévő külső osztályt, azt hogyan tudom leállítani onnan, ahol meghívtam? Ha hosszadalmas, elég nekem egy szó is, mire keressek rá.
Köszönöm
re: Lebike
Pl. a rollover fuggvenyen kivul deklarald az objektumot, amit igy mar elerhetsz mindket metodus torzsebol.
Sziasztok !
Külső osztálykezeléssel próbálkozom. Nem vagyok még tisztában a hatókörökkel, és így falba ütköztem.
Azt szeretném megoldani, hogy egy -pl- movieclip fölé viszem az egeret, akkor létrehozzon egy új objektumot egy általam kreált osztály példányát, ez rendben van. Viszont ha elviszem az egeret onnan, akkor törölje is ki, ha minden igaz a "null"-t kell használnom.
A rollover és rollout-ot külön függvénybe raktam, de a rollout függvényből nem férek hozzá a rollover függvényhez, hogy onnan törölni tudjam az ott létrehozott objektumot.
A kérdésem, hogy lehet ezt megoldani?
Köszi,
Balázs
re: tenegri
Érdekes megoldás. Én úgy értelmeztem, hogy a LINK esemény mindig keletkezik ha rákattintunk, nem csak akkor ha "event:"-el kezdődik az URL. legközelebb jobban megnézem a példát.
Ismételten köszönöm a segítséget.
re: Vroomfondel
tenegri válaszához még annyit hozzáfűznék hogy fókuszt utána jó rögtön vissza is adni de csak miután már nem érvényesül a hatása ehhez elég egy setTimeout amivel ki lehet kerülni a fő szál folyamat végrehajtási sorrendjét és akkor olyan mintha nem történt volna semmi.
Ez pl letiltja a backspace használatát
inField.addEventListener(KeyboardEvent.KEY_DOWN, onKeyboardDown) function preventKeyEventOnObj(obj:*):void { stage.focus = null setTimeout(function():void{stage.focus=obj},1) } function onKeyboardDown(event:KeyboardEvent):void { if(event.keyCode == Keyboard.BACKSPACE){ preventKeyEventOnObj(event.target) } }
re: maxinteger
A szerkesztés idejére cseréld le a href-eket, egészítsd ki azokat egy "event:" előtaggal, s akkor nem fog automatikusan megnyílni a böngészőben, hanem keletkezik egy LINK esemény, amire feliratkozhatsz, s te döntheted el, hogy meg akarod-e nyitni az URL-t vagy sem. Ha a végeredményül előállt HTML-t csak Flash mozin belül fogod megjeleníteni (s nem mondjuk egy sHTML oldalban), akkor állandóra is berakhatod az "event:"-eket, s a megjelenítő moziban magad gondoskodhatsz a linkek megnyitásáról.
re: Vroomfondel
Ha AIR-t használsz, akkor le lehet lőni a KEY_DOWN-ra végrehajtódó alapértelmezett műveletet (Event osztály, preventDefault() metódus), de sima Flash Playernél nem. Egy megoldást találtam rá eddig, hogy megakadályozd a nyilak, az enter és a hasonló billentyűk hatását egy szövegmezőben, mégpedig azt, hogy KEY_DOWN-kor ha az adott billentyűk vmelyike lett lenyomva, akkor elviszed a fókuszt a szövegmezőről (stage.focus - akár null-t, akár pl. vmi másik szövegmezőt megadva).
Sziasztok
Egy összetett form-ot csinálok flashben, adatföldolgozók fogják használni nagyüzemi termelésben, nagyon fontos a bevitel gyorsasága, ezért a mezők gyakran egyedi eseménykezeléseket kívánnak. A probléma ott kezdődik, hogy kontrol alá kell vonnom a nyilak, az enter és a backspace eseményeit, ám a scrip-ben lefutó billentyű esemény után az inputmező végrehajtja saját belső eseményeit az említett billentyűkre, pl. léptetés, törlés. Próbáltam ascii-ban megadni ezeket a billentyűket mező restrict-jének, de nem működik.
Van erre valami megoldás?
re: tenegri
Mondjuk én sem említettem, hogy flex-ben van, de a lényeg, hogy működik.
Viszont lenne egy újabb kérdésem.
Ugyan arról a TextArea-ról van szó. A lényeg, hogy lehet formázni a tartalmát, és lehet olyat is, hogy megadok a kijelölt szövegre egy url-t. Ez eddig jó is lenne, de ha rákattintok a linkre akkor behozza a weboldalt amit megadtam és én ezt nem szeretném, viszont az url-nek benne kell maradnia a szövegben.
Van arra lehetőség, hogy ezt kikapcsoljam valahogy
Most kb így néz ki:
var tf:TextFormat = new TextFormat(); tf.url = "http://www.google.com"; tf.target = "_blank"; textArea.getTextField().setTextFormat(tf,beginIndex,endIndex);
re: maxinteger
Ja, hogy Flexes TextArea - ott valóban protected. Vmiért azt gondoltam, hogy a Flashes komponensről van szó.
re: tenegri
Köszönöm a segítséget, működik. Mindig tanul valamit az ember.
Már csak az a ciki, hogy a textField proteced változó :D
Egy extends-el megoldottam, de akkor is vicces.
re: maxinteger
Az fl.controls.TextArea-nak nincs erre szolgáló metódusa, de a textField tulajdonságával hozzáférhetsz a benne levő szövegmezőhöz és annak az insertXMLText metódusával már megoldhatod:
var xmlText: String = '<flashrichtext version="1"><textformat underline="true">(' + insertStr + ')</textformat></flashrichtext>'; textArea.textField.insertXMLText(beginIndex, endIndex, xmlText);
De ha csak pont ugyanolyan formázással akarsz beszúrni valamit, akkor ez is jó:
textArea.textField.replaceText(beginIndex, endIndex, insertStr);
Helló
Van egy textArea amiben formázott szöveg van (tehát nem egységes minden ponton a textFormat).
Hogyan tudok úgy beszúrni egy új szót, úgy hogy közben nem törlődik a formázás?
Az alábbi próbáltam, ami jó helyre teszi be a szöveget, de a formázásnak lőttek:
var text:String = textArea.text; textArea.text = text.substr(0, beginIndex) + insertStr + text.substr(endIndex, text.length);
(A "beginIndex" és az "endIndex" a szövegkijelölést jelölik)
re: Qayko
Alapvetoen 2felekepp tudod elerni kodbol a letrehozott movieclip-et
1. library-be teszed, linkage-nel beallitod az exportot (egy osztaly nevet adsz, amit kodbol tudsz peldanyositani)
2. szinpadra teszed, INSTANCE NEVET adsz neki, es arra hivatkozol a kodbol
Ha csak letrehozod, de nincs se instance neve (mert pl nincs a szinpadon vagy nem adtal neki nevet), akkor nem tudod elerni.
Ha nem akarsz szinpadra pakolgatni, akkor az 1.re lesz szukseged.
Zárolt topik, további üzenetek írása nem lehetséges.