SWF kao plugin, hitno |
Dobrodošli, goste ( Prijava | Registracija )
![]() ![]() |
SWF kao plugin, hitno |
Mar 30 2011, 21:03
Poruka
#1
|
|
|
Imam sledeci problem:
Napravio sam cms u flashu u kojeg je moguce ugurati tj praviti externe plugine, medjutim nesto me jako buni. Da malo bolje pojasnim princip: Ovo je externi swf kojem ja glavna tj document klassa MFAlphaPlugin.as ona u sebi sadrzi jednu public funkciju koja instancira novi objekat i vraca ga nazad: CODE package com.i_do2.extplugin { import flash.display.MovieClip; import com.i_do2.extplugin.TxtEditor; /** * ... * @author: Mirko Fisic www.i-do2.com */ public class MFAlphaPlugin extends MovieClip { public function MFAlphaPlugin() { } public function getNewPluginInstance(data:Object):Object { var editor:TxtEditor = new TxtEditor(data); editor.init(true); return editor as Object; } } } E sada u cms ucitiam ovaj swf i sasvim normalno pozovem funkciju getNewPluginInstance prosledim objekat i dobijem TxtEditor objekat nazad i sve ok. E sada incijalizaciju objekta sam vec pozvao u externom swf-u jer TxtEditor ima da pokupi odredjene simbole iz librarija tog samog swf-a ali medjutim on kao da gleda na librari od cms swf-a i sve classe koje su importovane u samoj TxtEditor classi prijavljuje kao da nepostoje? Gde gresim i ili ipak moram da dodam komplet swf na stage a ne samo instancirani bojekat iz externog swf-a? |
|
|
|
|
Mar 30 2011, 22:10
Poruka
#2
|
|
|
Grupa: Članovi Poruke: 107 Datum reg.: 25-March 09 Lokacija: BiH Član broj: 28,853 |
E sada u cms ucitiam ovaj swf i sasvim normalno pozovem funkciju getNewPluginInstance prosledim objekat i dobijem TxtEditor objekat nazad i sve ok. E sada incijalizaciju objekta sam vec pozvao u externom swf-u jer TxtEditor ima da pokupi odredjene simbole iz librarija tog samog swf-a ali medjutim on kao da gleda na librari od cms swf-a i sve classe koje su importovane u samoj TxtEditor classi prijavljuje kao da nepostoje? Gde gresim i ili ipak moram da dodam komplet swf na stage a ne samo instancirani bojekat iz externog swf-a? Ovaj dio mi je nejasan: 1 ili 2 externa swf-a? Koliko sam razumio ucitas externi.swf i onda iz main.swf pozoves metod: getNewPluginInstance(myData)? Vjerovatno problem sa "levelima". Jel ova struktura: main.swf _______________ | externi.swf-->editor |
|
|
|
Mar 30 2011, 22:12
Poruka
#3
|
|
|
Moras da koristis ApplicationDomain klasu kada ucitavas externi swf.
http://livedocs.adobe.com/flash/9.0/Action...tionDomain.html |
|
|
|
|
Mar 30 2011, 22:16
Poruka
#4
|
|
|
Grupa: Članovi Poruke: 107 Datum reg.: 25-March 09 Lokacija: BiH Član broj: 28,853 |
Moras da koristis ApplicationDomain klasu kada ucitavas externi swf. http://livedocs.adobe.com/flash/9.0/Action...tionDomain.html Da moguce je da je dobio ovo: main.swf-->this.getNewPluginInstance(data:Object) |
|
|
|
Mar 30 2011, 23:02
Poruka
#5
|
|
|
^Da radi u tom fazonu main.swf-->this.getNewPluginInstance(data:Object)
@iki_xx Zaboravio sam skroz na AplicationDoman ni na kraj pameti, nadam se da ce da resi problem sad cu da isprobam. thnax man a lot. Hvala vam puno na pomoci. |
|
|
|
|
Mar 31 2011, 08:22
Poruka
#6
|
|
|
Hmmm nemogu nikako da resim ovo. Prosldeim sve kako treba ali opet mi izbaci error:
ReferenceError: Error #1065: Variable FormatButton is not defined. i tako za sve classe i varijable koje se nalaze u TxtEditor classi koju preuzimam preko public funkcije getNewPluginInstance, pokusao sad direktno da uzmem class definition za TxtEditor ali ista prica. |
|
|
|
|
Mar 31 2011, 12:50
Poruka
#7
|
|
|
Jel koristis "getDefenitionByName" ?
http://livedocs.adobe.com/flash/9.0/Action...initionByName() |
|
|
|
|
Mar 31 2011, 13:51
Poruka
#8
|
|
|
Probao sam i preko te klasse ali nista, sad mi se cak javlja greska ako sam prosledim LoaderContext u Loader.load funkciju. svasta heh imam osjecaj da cu imati s ovim ozbiljnih zivciranja
|
|
|
|
|
Apr 1 2011, 12:19
Poruka
#9
|
|
|
Imali iko jos kakvih ideja kako ovo da resim? Probao sam i ovo ali jednostavno neide cim loader zavrsi ucitavanje znaci nisam nista ni pozvao cim progress ucitavanja zavrsi odma error izbaci?
Hvala |
|
|
|
|
Apr 4 2011, 08:49
Poruka
#10
|
|
|
Syndrome imas li ti mozda nekog keca u rukavu?
|
|
|
|
|
Apr 4 2011, 13:57
Poruka
#11
|
|
|
ne bih znao tacno sta i kako ovako napamet, ali koliko vidim ti hvatas nesto sto se zove TxtEditor i onda ga kastujes u Object, sto je u redu, jer je Object<-TxtEditor, medjutim onda iz Object verovatno pozivas neku metodu ili nesto, a Object prototip to nema.
iz mog iskustva, kada se kompajler ili run time zbune oko namespacea, pocnu da prijavljuju cudne greske oko nepoznatih imena i definicija. recimo u mom trenutnom projektu, radim refaktor, i napisao sam gomilu nekog koda napamet, jer znam sta i kako, vec sam pravio. i onda, na dosta mesta referiram na staticku metodu klase ObjectBuilder koju jos nisam napravio, ostavio sam je za kraj. i dok radim, zaboravim na to, pokrenem kompajler, i on umesto da prijavi da nema klase ObjectBuilder zine kako nisam definisao lepo neku konstantu na levom mestu, sto je potpuno netacno, jer kada napravim ObjectBuilder, konstanta ne pravi nikakav problem. uveri se prethodno u to da nemas neku gresku tog tipa, npr. pristupas javnom interfejsu koji kompajler uopste nije skontao ili nesto slicno (za ovaj primer recimo, treba da koristis custom interface, npr. IPlugin a ne Object). ali dalje od toga ne znam da li mogu da ti pomognem, nisam se nikad upustao u kaskadno ucitavanje drugih swfova, iako je sasvim opravdano, nije mi trebalo. jedino sto znam je ono sto je iki vec rekao za ApplicationDomain. sa tim sam se petljao na samom pocetku rada sa AS3 jer mi je nedostajao library i attachMovieClip ili kako se vec to zvalo u dvojci, dok nisam promenio kompletan pristup. |
|
|
|
|
Apr 4 2011, 14:10
Poruka
#12
|
|
|
AplicationDomain classa je ok kada hoces da uzmes neki objekat iz externog swf-a tj neki simbol iz librarija, al na kraju to meni netreba, meni je dovoljno da swf externi sam komunicira sa svojim librarijem i kreira objekte unutar sebe.
Meni je ovde prijavljivao i greske kao da neke classe uopste nisu definisane, i na kraju mi je cak izbacio gresku da u svojoj BaseButton classi nisam napravio dobar override funkcije active. Sve sam zivo proverio i nisam nasao problem, i onda sam na kraju skontao da i u externom a i u glavnom swf-u imam standardne komponente, stim da glavni swf ima komponente ubacene iz flash cs4, otvorio sam file u cs5 i dodao komponente tj pregazio ih, pokreno file uvukao externi swf uzeo objekat iz funkcije getNewInstancePlugin() i dodao ga nastage sasvim normalno i sve classe u externom swf-u su radile super i preuzimale simbole iz svog librarija bez ikakvih problema. Znaci bitno mi je samo da uhvatim novu instancu Objekta TxtEditor kada ga dodam na stage u glavni swf on sve sam inicijalizuje i preuzima simbole iz svog librarija. Problem je bio u standardnim komponentama. |
|
|
|
|
![]() ![]() |
| Lo-fi verzija | Trenutno vreme: Wednesday 19. June 2013 - 03:40 |