Autor Zpráva
gardner
Profil *
Jde o motion tween pomoci AS.
Zajimalo by mne jestli mx.transition je pri dnesnich moznostech idealni volba pro danou situaci, (ktera vyzaduje tween pouze pomoci nejak formy AS)
dale pak jak spravne rozmistit skript na jednotlive framy jelikoz tento "vzorek" bude pozdeji volan za pouziti loadMovie do vedsiho Master_MC a zaroven sam vola dalsi MC.swf do sebe.
moc diky za uzitecne odpovedi.

vzorek je tady: http://leteckaposta.cz/151475791
gardner
Profil *
Ani DoubleThink nebo FlashManiac..? please
FlashManiac
Profil
pokud vim tak ve F8 nejsou mx.transitions a F9 ja neznam..takze nemuzu poradit
XXX
Profil
gardner
Pouzití objektu Tween k animovani pomoci AS je rozhodne snad ta nejlepsi volba. Cim vic toho dokazes jen pomoci AS a nebudes to vytvaret primo na pracovni plose, tim lepe. Je jasne, ze cim vic animaci budes v projektu pouzivat, tim to bude cele pomalejsi a obzvlaste na slabsich pocitacich to pak bude znat, ale rozhodne se nemusis bat, ze by to bylo nejak pomalejsi nez animace vytvorene jako klasicky MotionTween. Jelikoz jsem si jeste porad nenainstaloval Flash9, tvuj zdroj neotevru, takze k nemu se vyjadrit nemuzu, kazdopadne externi data ti nemohou nic komplikovat, teda pokud s nimi budes spravne pracovat. Jako nejvetsi nesmysl mi prijde pouzivat metodu loadMovie k nacitani externich SWF. Zkus si neco najit o movieClipLoader(u) a praci s nim. Neskutecne ti to ulehci zivot ;)
gardner
Profil *
XXX
Diky za radu, nevedel jsem ze loadMovie neni zas az tak dobra volba, mel jsem vzdy strach z komplexnosti AS proto jsem se movieClipLoaderu spise vyhejbal. Zkusim to tedy nastudovat.

Jeste bych rad poprosil o spravne nasmerovani.

Tady je SWF jak by to zhruba melo vypadat s tim ze pod kazdym tlacitkem sedi kontainer do ktereho se pri prvnim spusteni naloaduje patricny obsah (subnavigace).

http://www.vikino.com/rmk/acc.swf

A tady je vzorek z soucasneho timelinu(240framu), ktery uz napovida o tom ze to neni spravny reseni, cele to nabyva hektyckych rozmeru a je to neprehledne a komplikovane
a pripadna animace naloadovaneho obsahu uz se mi zda temer nemozna.

http://www.vikino.com/rmk/s_shot.gif

Mohl by jsi mi tedy prosimte nastinit idealni strukturu pro reseni tohohle menu. Budu velmi vdecny.
embee
Profil
pomoci AS se to da resit celkem jednoduse.... jedine, co potrebujes, je to, aby pokazde, kdyz uzivatel klikne na nejakou polozku z menu, flash vypocital cilovou y souradnici (x se nemeni), kam ta polozka ma doputovat. Pak pouze vytvoris tween object, pricemz kostruktoru predas tu pozadovanou hodnotu souradnice y.

Tohle reseni ma vyhodu v tom, ze muzes pridavat ci ubirat polozky z menu, jak se ti zachce a bude to porad fungovat stejne.
gardner
Profil *
Dobre, ale bylo by tedy lepsi udelat 5 jednotlivych klipu s tlacitkem i obsahem a ty loadovat do hlavniho MC kde by se pres sebe naskaladaly podle Depth a tam by se s nimi zacalo hybat pomoci bozii a AS, nebo loadovat jen obsah.swf pro jednotliva tlacitka ktera by uz fungovala v hlavnim MC?
embee
Profil
gardner
nerekl bych, ze ma smysl delat menu pomoci externich klipu, spis bych je nasazel do knihovny hlavniho MC a pak pomoci for smycky nastrkal na stage
XXX
Profil
gardner
Taky nechapu, co chces nacitat externe.

Ve tvem pripade, kdy je menu dokonce i po graficke strance tak jednoduche,
jej muzes udelat kompletne cele pomoci AS.

Barevne obdelniky nakreslis pomoci Drawing API, do nich vytvoris dynamicky
textove pole s popiskem, ktery bys mohl teoreticky nacitat z externiho souboru,
napr. z XML, abys to mel pripravene treba pro jiny jazyk, stejne tak pomoci
skriptu muzes vyresit jak ty zmeny barev, tak animace pohybu.

Takze vlastne nemusis vubec nic vytvorit na pracovni plose a tim padem muzes
mit prazdnou i knihovnu ;) Nejlepsi reseni...
gardner
Profil *
Dekuji XXX,

za nastineni spravneho postupu, jen jako cloveka, ktery se dostal k Falshi skrz tiskovou grafiku mne trochu desi predstava ze pracovni plocha bude uplne cista :)

Moznost externiho contentu jsem preferoval kvuli flexibilite toho menu ( ne kazda stranka musi mit v menu stejny obsah jako hompage, zrovnatak vzhled tlacitek nemusi byt stale stejny, ale mohl by mit nejaky tematicky skin nebo tak neco), subsekce kazdeho tlacitka by nemusela obsahovat jen textova tlacitka ale vlastne cokoliv co by se loadlo do toho mista ktere je k dispozici napriklad v sekci NEW & UPDATES jsem mel v planu umisti sloupek s uryvky zprav s vertikalnim scrollem.
Tento sloupek ma sam o sobe dost AS a ja mam panickou hruzu z toho ze bych je musel nejak sloucit v jeden MC.

Tedy idealni predstava by byla mit vybudovanou flexibilni zakladnu takoveho menu (nevim jestli WIREFRAME by bylo vhodne slovo), stim ze veskery kontent by byl snadno menitelny treba pomoci XML.
gardner
Profil *
Tak jsem vytvoril 5 tvaru pro tlacitka a 5 sekci pomoci API, mam ale problem s "height of depth" jelikoz jsem planoval ze vytvorim sekci v (depth 1) ve ktere bude conatiner pro obsah (depth2) a tlacitko (depth 11) a tu pak prekrije dalsi sekce tak aby se zasouvali jedna za druhou (2sekce depth 3, 2container depth 4, 2tlacitko depth12) atd. ale nejak to neni uplne ono.

Muzete mne zase trochu nasmerovat?

Tady je script:

var s1:MovieClip = this.createEmptyMovieClip("sekce_mc1",1)
//var s2:MovieClip = this.createEmptyMovieClip("sekce_mc2",3)
//var s3:MovieClip = this.createEmptyMovieClip("sekce_mc3",5)
//var s4:MovieClip = this.createEmptyMovieClip("sekce_mc4",7)
//var s5:MovieClip = this.createEmptyMovieClip("sekce_mc5",9)
var b1:MovieClip = sekce_mc1.createEmptyMovieClip("button_mc1",11)
var b2:MovieClip = sekce_mc2.createEmptyMovieClip("button_mc2",12)
var b3:MovieClip = sekce_mc3.createEmptyMovieClip("button_mc3",13)
var b4:MovieClip = sekce_mc4.createEmptyMovieClip("button_mc4",14)
var b5:MovieClip = sekce_mc5.createEmptyMovieClip("button_mc5",15)


b1.beginFill(0xcc00cc, 100);
b1.moveTo(0, 0);
b1.lineTo(170, 0);
b1.lineTo(170, 26);
b1.lineTo(0, 26);
b1.endFill();

b2.beginFill(0xcc00cc, 100);
b2.moveTo(0, 28);
b2.lineTo(170, 28);
b2.lineTo(170, 54);
b2.lineTo(0, 54);
b2.endFill();

b3.beginFill(0xcc00cc, 100);
b3.moveTo(0, 56);
b3.lineTo(170, 56);
b3.lineTo(170, 82);
b3.lineTo(0, 82);
b3.endFill();

b4.beginFill(0xcc00cc, 100);
b4.moveTo(0, 84);
b4.lineTo(170, 84);
b4.lineTo(170, 110);
b4.lineTo(0, 110);
b4.endFill();

b5.beginFill(0xcc00cc, 100);
b5.moveTo(0, 112);
b5.lineTo(170, 112);
b5.lineTo(170, 138);
b5.lineTo(0, 138);
b5.endFill();

s1.beginFill(0xeee, 100);
s1.moveTo(0, 0);
s1.lineTo(170, 0);
s1.lineTo(170, 379);
s1.lineTo(0, 379);
s1.endFill();

s2.beginFill(0xe6e6e6, 100);
s2.moveTo(0, 0);
s2.lineTo(170, 0);
s2.lineTo(170, 300);
s2.lineTo(0, 300);
s2.endFill();

s3.beginFill(0xe6e6e6, 100);
s3.moveTo(0, 0);
s3.lineTo(170, 0);
s3.lineTo(170, 300);
s3.lineTo(0, 300);
s3.endFill();

s4.beginFill(0xe6e6e6, 100);
s4.moveTo(0, 0);
s4.lineTo(170, 0);
s4.lineTo(170, 300);
s4.lineTo(0, 300);
s4.endFill();

s5.beginFill(0xe6e6e6, 100);
s5.moveTo(0, 0);
s5.lineTo(170, 0);
s5.lineTo(170, 300);
s5.lineTo(0, 300);
s5.endFill();



diky
gardner
Profil *
embee

Zdarvim, rad bych se te zeptal na soukromou zalezitost, je nejaka moznost jak se s tebou spojit mimo forum?

diky.
FlashManiac
Profil
no z toho kodu jsem moc nepochopil co to ma delat..ale pokud mas problem s vrstvama..tak zkus metodu.. swapDepths().. mozna ti to bdue k necemu:)
gardner
Profil *
Ty vrsvy jsem zle nadefinoval, myslim ze uz to chapu a jestli ne tak mne opravte, vrsvy se vsud definuji vne neceho tedy na timelinu plati vrstvy 0 az hodne a potom v obektu ktery lezi v nejake vrsve na timelinu treba (MC_1) uz to zacina zese od 0 az hodne. Je to tak?

Jinak za swapDepths() dekuji, ale zatim to nejspis nebudu umet pouzit.
FlashManiac
Profil
no takhle..
vrstvy, ktere zacinaji od nuly se pocitaji jen kdyz nahravas swf pomoci loadMovieNum
ale jinak vrstvy na casove ose se pocitaji nejak od -1500000 do +1500000 ale to nevim presne vim jen ze to zacina v minusu a konci nekde v plusu XD
gardner
Profil *
zdravim, tak jsem to dotahl az sem: http://leteckaposta.cz/240534070

Ted mam par otazek 1) Je nutne vykreslit kazdy tvar pomoci Draw API jednotlive nebo je mozne je nejak duplikovat?
2) Jak nejvhodeneji priradit novou funkci (jdi zpet) "on release' tlacitku ktere prave zmenilo pozici (dolu). Pomoci var nebo jinak?
3) jak hromadne primet dalsi tlacitka k posunu na spodni pozice po kliknuti na jedno z vrchnich? Pridanim radku do bloku funkce s nalezitym jmemem instance?
[new mx.transitions.Tween(sekce_mc4, "_y", mx.transitions.easing.Regular.easeIn, 15, 241, 10, false);]
gardner
Profil *
Zdravim,

mam prosbu, zde bych potreboval poladi script tak, aby naloadoval urcity .SWF definovan v XML dokumentu namisto puvodniho lorem ipsum textu.
S tim ze namito puvodniho 'text field' jsem v 'header' klipu v knihovne vytvoril prazdny container_mc s instance name new_content.

vec druha, jak zmenim barvu aktivniho hederu, (po kliknuti se stane aktivnim)

.. poznamky v AS

material:

XML: http://www.vikino.com/rmk/menu/news.xml
zdrojak: http://www.vikino.com/rmk/menu/menu.fla

dik moc komukoliv kdo dobre poradi
gardner
Profil *
tady je kod, mrkne te na to nekdo prosim..
var vContent:MovieClip = this.createEmptyMovieClip("content", this.getNextHighestDepth());
	vContent._x = 0;
	vContent._y = 0;
var vMask = this.createEmptyMovieClip("mask", this.getNextHighestDepth());
	vMask._x = vContent._x;
	vMask._y = vContent._y;
var	myspeed = 23;

// Init variables
var hBlockDescription = 270;

function createList(target:MovieClip, theArray:Array) { // Create accordion list
	for(i:Number = 0; i < theArray.length; i++){
		target.attachMovie("header", "header"+i, i);
	var hHeader = target["header"+i]._height-hBlockDescription;
		target["header"+i]._x = 0;
		target["header"+i]._y = hHeader * i;
		target["header"+i].Ymin = target["header"+i]._y;
		target["header"+i].Ymax = target["header"+i]._y + hBlockDescription;
		target["header"+i].key = i;
		target["header"+i].new_day.text = theArray[i].jo;
		target["header"+i].new_title.text = theArray[i].ti;
		target["header"+i].new_content.htmlText = theArray[i].co; // Cim nahradim htmlText abych naloadoval .SWF file?
		target["header"+i].bt_header.onPress = function(){
				noClick(this);
				switchBlock(this._parent, theArray.length);
				//zmena barvy prijde nekam sem?? 
		}
	}
}

function noClick(target:MovieClip){ // Avoid double click on "header"
	target.enabled = false;
	target.count = 0;
	function fCount(){
	  target.count += 1;
	   if(target.count >= 1){
			clearInterval(target._intv);
			target.enabled = true;
		}
	}
	target._intv = setInterval(fCount, 300);
}

function createMask(mask:MovieClip, theArray:Array){ // Create mask
		wList = this.vContent._width;
		hListClose = (theArray.length * 155);
        mask.beginFill(0xFF0000, 100);
        mask.moveTo(0, 0);
        mask.lineTo(wList, 0);
        mask.lineTo(wList, hListClose);
        mask.lineTo(0, hListClose);
        mask.endFill();
		vMask.Hmin = hListClose;
		vMask.Hmax = hListClose + hBlockDescription;
   		this.vContent.setMask(mask);
}

function openMask(mask){ // Enlarge mask
	if(mask._height <= mask.Hmin){
		mask.onEnterFrame = function(){
			mask._height += myspeed;
			if(mask._height >= mask.Hmax){
				mask._height = mask.Hmax;
				delete mask.onEnterFrame;
			}
		}
	}
}
function closeMask(mask){ // Reduce mask
	if(mask._height >= mask.Hmax){
		mask.onEnterFrame = function(){
			mask._height -= myspeed;
			if(mask._height <= mask.Hmin){
				mask._height = mask.Hmin;
				delete mask.onEnterFrame;
			}
		}
	}
}

function switchBlock(block:MovieClip, nb:Number){ // Switch "header"
	if(block._y <= block.Ymin){
		openMask(vMask);
		for(j:Number = nb; j > block.key; j--){
			block._parent["header"+j].onEnterFrame = function(){
				this._y += myspeed;
				if(this._y >= this.Ymax){
					this._y = this.Ymax;
					delete this.onEnterFrame;
				}
			}
			if(block._parent["header"+(block.key+1)]._y >= block._parent["header"+(block.key+1)].Ymax){
				closeMask(vMask);
				block._parent["header"+j].onEnterFrame = function(){
					this._y -= myspeed;
					if(this._y <= this.Ymin){
						this._y = this.Ymin;
						delete this.onEnterFrame;
					}
				}
			}
		}
	}
	if(block._y >= block.Ymax){
		for(k:Number = 0; k <= block.key; k++){
			block._parent["header"+k].onEnterFrame = function(){
				this._y -= myspeed;
				if(this._y <= this.Ymin){
					this._y = this.Ymin;
					delete this.onEnterFrame;
				}
			}
		}
	}
}

var listNews:XML = new XML(); // Load news xml file
listNews.ignoreWhite = true;
listNews.onLoad = function() {
	var racine = this.firstChild;
	var nombreNews = racine.childNodes.length;
	var tabNews:Array = new Array();
	for(i=0; i<nombreNews; i++) {
		var nodeNew:Object = new Object();
			nodeNew.jo = racine.childNodes[i].attributes.day;
			nodeNew.ti = racine.childNodes[i].attributes.theTitle;
			nodeNew.co = racine.childNodes[i].childNodes[0].firstChild;
		tabNews.push(nodeNew);
	}
	createList(vContent, tabNews);
	createMask(vMask, tabNews);
}
listNews.load("news.xml");
gardner
Profil *
Koukam ze uz to vsechny prestalo bavit.. EMBEE, je nejaka sance ze bych si s tebou mohl promluvit soukrome prosim?
embee
Profil
heh mno tak v tomhle skriptu se hrabat nebudu, v tom se opravdu nevyznam... s XMLkem bych v as2.0 ani nic nedelal, je to na prustrel hlavy.

Jinak osobni kontakt nedavam, nemam cas na to nekomu neco vysvetlovat jeste mimo forum jestli mi rozumis :)

Jinak co jsem zbezne prohledl co tu resis tak bych ti asi poradil jednu vec - zkombinuj for smycku s polem. For smyckou muzes jen na nekolika radcich skriptu vytvorit tolik tlacitek kolik jejnom chces a kdyz je rovnou nastrkas do pole, mas na ne rovnou referenci. Dost ti to ulehci praci.
gardner
Profil *
Diky Embee, jsem rad ze jsi se ozval, kontakt jsem nechtel kvuli tomuhle menu, ale kvuli nekolika sporadanym otazkam ohledne biznysu coz sem nepatri, ale potreboval jsem nejak zjistit jestli fungujes jako freelancer a podobne proste par otazek a par odpovedi, nikoliv otravovani s nefungujicim tlacitkem apod.

Kazdopadne za odpoved co se tematu tyce dekuji, uz jsem sehnal kopec ruznych skriptu s xml i bez nej dokonce jsem zaplatil nemalo penez nekomu do to mel udelat ale zatim to vypada spis na ten prustrel hlavy.
embee
Profil
gardner
ok tak ze mam dneska dobrou naladu tak mi muzes mailnout na mail@embee.cz :)

jinak uprimne receno moc nerozumim tomu, proc by melo byt menu resene takhle prasacky pres XML, podke je to zytecna parce navic :)
gardner
Profil *
to rozhodne prace navic je, vo tom zadna, najivne jsem si myslel ze mi to ulehci praci do budoucna ve smyslu ze ono menu bude jen pohibovaci velicina a obsah a barvy si budu moci snadno nastavit v xml na misto editace fla, to v pripade vyuziti menu na jinych webkach. Ale uz je mi jasny ze je to blbost. Dalsi duvod byl ze potrebuju do polozky news vlozit MC se scroll barem a jeho AS je pomerne slozity a proto jsem mel desnou hruzu z toho je jakoliv slucovat coz je nejspis taky blbost.

Takze to budu muset prehodnotit.
embee
Profil
gardner
ja myslim ze na to jdes uplne spatne. Tak jako tak budes do kazdeho projektu, kam to menu budes vkladat, napsat nejaky kod na jeho vytvoreni. Tak proc to menu neudelat ve smyslu OOP? Udelas si tridu, ktera bude obsahovat veskery skript pro vytvoreni tlacitek a jedine, co budes definovat ve *.fla, bude barva, label a url kazdeho tlacitka pri jeho vytvareni. Tim dosahnes moznosti vyuziti v jakemkoli projektu bez zbytecnosti jako XML a podobne, to se na tohle opravdu nehodi.

S tim scrollbarem - co presne by mel ten scrollbar scrollovat? :)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0