createEmptyMovieClip probleme

Intrebari despre Actionscript 2.0

createEmptyMovieClip probleme

Mesajde slyfer » Joi Dec 30, 2010 2:08 pm

Salut.
Am si eu o problema pe care nu o pot depista.Am codul urmator:
this.createEmptyMovieClip("cr_mc",10)

add_mc.onRelease = function(){
addCerc();
}

function addCerc() {
var t:MovieClip =cr_mc.attachMovie("cerc","spot"+i,cr_mc.getNextHighestDepth())
t._y =Math.random() *Stage.height
t._x =Math.random() *Stage.width
t._alpha =Math.random() *40+10;
}
Movieclipul are ca indentificator(identifier) "cerc".Daca as pune inca un movieclip pe care sa-l adaug tot prin metoda createEmptymovieClip in loc de "this" care este folosit pentru movieclipul cerc ce sa folosesc?
Astept sugestii.
Multumesc.
slyfer
 
Mesaje: 14
Membru din: Joi Dec 30, 2010 1:38 pm
Localitate: Brasov

Re: createEmptyMovieClip probleme

Mesajde Barna Biro » Joi Dec 30, 2010 7:48 pm

Salut si bine ai venit,

Ai putea sa reformulezi un pic ultima bucata... sincer, nu inteleg ce intrebi. Vrei sa stii cum poti adauga un MovieClip in MovieClip-ul creat de tine, numit "cerc"?

PS: Apropo, vezi ca avem tag-uri CODE pe care poti sa le folosesti atunci cand postezi cod ( e adevarat ca nu este cel mai frumos plug-in, dar o sa-l schimbam soon ).
Imagine
Avatar utilizator
Barna Biro
Administrator
 
Mesaje: 2037
Membru din: Vin Iul 25, 2008 1:06 am
Localitate: Lucerne, Switzerland

Re: createEmptyMovieClip probleme

Mesajde slyfer » Joi Dec 30, 2010 8:11 pm

Nu , vreau ca cele doua movieclipuri sa fie create separat in acelasi script prim metoda createEmptyMovieClip.Codul pentru celalalt movieclip este este:

Cod: Selectaţi tot
this.createEmptyMovieClip("pt_mc",10)
//buton pentru patrate
add1_mc.onRelease = function(){
addPatrat();
}

function addPatrat() {
var d:MovieClip =cr_mc.attachMovie("patrat","spot"+i,ptr_mc.getNextHighestDepth())
d._y =Math.random() *Stage.height
d._x =Math.random() *Stage.width
d._alpha =Math.random() *40+10;
}

Cum fac sa reunesc cele doua intr-unu singur?
slyfer
 
Mesaje: 14
Membru din: Joi Dec 30, 2010 1:38 pm
Localitate: Brasov

Re: createEmptyMovieClip probleme

Mesajde Barna Biro » Joi Dec 30, 2010 8:34 pm

Huh... Nu pot sa spun ca acuma inteleg mai bine problema decat acum 10 minute... Incearca te rog sa descrii ceea ce vrei sa faci fara sa te prea referei la nume de metode si nume de obiecte concrete, deoarece vad ca nu esti obisnuit cu termenii tehnici si doar invalui si in mai multa ceata problema...

Probabil am si eu o oarecare vina, deoarece sunt foarte obosit...

PS: Ai grija ca tu ai numit MC-ul gol "pt_mc" dar in addPatrat incerci sa accesezi "ptr_mc", ceea ce probabil n-o sa mearga ( asta in cazul in care nu ai si un "ptr_mc" pe undeva ). Also, de ce adaugi teoreticul patrat in "cr_mc"? Este foarte confuz felul in care ai gandit toata treaba asta...
Imagine
Avatar utilizator
Barna Biro
Administrator
 
Mesaje: 2037
Membru din: Vin Iul 25, 2008 1:06 am
Localitate: Lucerne, Switzerland

Re: createEmptyMovieClip probleme

Mesajde slyfer » Joi Dec 30, 2010 9:01 pm

Programul as vrea sa fie ceva in genu.Am un cerc si un patrat ca doua movieclipuri si inca doua butuoane pentru cerc si respectiv pentru patrat(cand apas pe unul din butoane o sa apara pe ecran un cerc sau un patrat de pinde de buton).Eu vreau sa stiu cum sa fac sa adaug cele doua movieclipuri multiplicate pe ecran la intamplare , exact ca si primul script pentru cerc.
slyfer
 
Mesaje: 14
Membru din: Joi Dec 30, 2010 1:38 pm
Localitate: Brasov

Re: createEmptyMovieClip probleme

Mesajde Barna Biro » Joi Dec 30, 2010 10:30 pm

Ti-am facut un exemplu rapid, ca sa intelegi cam care ar fi ideea ( una din posibilele solutii ):

Cod: Selectaţi tot
var shapesContainer:MovieClip = this.createEmptyMovieClip("shapesContainer", this.getNextHighestDepth());

// -------------------------------------
//   Event handling
// -------------------------------------

/**
 * Called once the "Add rectangle" button is pressed. It creates a new
 * rectangle and positions it at a random coordinates.
 */
btnAddRectangle.onPress = function():Void
{
   var instanceName:String      = "rectangle" + rectanglesList.length,
      width:Number         = Math.random() * 100 + 10,
      height:Number         = Math.random() * 100 + 10,
      color:Number         = Math.random() * 0xFFFFFF,
      rectangle:MovieClip    = createRectangle(shapesContainer, instanceName, width, height, color);
   
   positionRandomly(rectangle);
}

// -------------------------------------
//   Methods
// -------------------------------------

/**
 * Randomly positions a specific object on the stage.
 *
 * @param target The object to be positioned.
 */
function positionRandomly(target:MovieClip):Void
{   
   target._x = Math.abs(Math.random() * Stage.width - target._width);
   target._y = Math.abs(Math.random() * Stage.height - target._height);
}

/**
 * Creates a rectangle based on the supplied information and adds it
 * into a specific container.
 *
 * @param container The object that will hold the rectangle that is to be created.
 * @param instanceName The rectangle's instance name.
 * @param width The rectangle width.
 * @param height The rectangle height.
 * @param color The rectangle color.
 *
 * @return The newly created rectangle instance.
 */
function createRectangle(container:MovieClip, instanceName:String,
                   width:Number, height:Number, color:Number):MovieClip
{
   var rectangle:MovieClip = container.createEmptyMovieClip(instanceName, container.getNextHighestDepth());
   
   // Draw the rectangle.
   with (rectangle)
   {
      beginFill(color);
      moveTo(0, 0);
      lineTo(width, 0);
      lineTo(width, height);
      lineTo(0, height);
      lineTo(0, 0);
      endFill();
   }
   
   return rectangle;
}

Nu exista implementarea si pentru cercuri, dar s-ar face la fel... ai mai avea o functie numita "createCircle" in care implementezi mechanismul de desenare al unui cerc si chemi metoda respectiva in momentul in care este apasat butonul care ar trebui sa adauge cercuri.

Sfat personal: In cazul in care te vezi ( te visezi ) facand lucruri in Flash pentru o perioada mai lunga, te sfatuiesc sa uiti de ActionScript 2.0 deoarece este un limbaj vechi si in parerea mea, este oribil... Pune-te direct pe ActionScript 3.0! O sa iti salvezi foarte multi neuroni si fire de par daca pur si simplu uiti ca a existat si ActionScript 2.0 candva.

PS: Acuma am observat din nou ( cum spuneam, sunt foarte obosit ) ca tu nu desenai "manual" dreptunghiul ci-l atasai din librarie... poti sa inlocuiesti pur si simplu mecanismul meu de "desenare manuala" cu attachMovie-ul pe care-l faceai si esti tot acolo ( + sa mai scoti din parametrii aia aditionali de care nu mai ai nevoie, cum ar fi "color", "width, " height" ).
Imagine
Avatar utilizator
Barna Biro
Administrator
 
Mesaje: 2037
Membru din: Vin Iul 25, 2008 1:06 am
Localitate: Lucerne, Switzerland

Re: createEmptyMovieClip probleme

Mesajde slyfer » Vin Dec 31, 2010 11:19 am

Daca tot e sa trec de la AS 2.0 LA AS 3.0 poate cineva sa-mi dea niste site-uri de unde sa pornesc?
slyfer
 
Mesaje: 14
Membru din: Joi Dec 30, 2010 1:38 pm
Localitate: Brasov

Re: createEmptyMovieClip probleme

Mesajde Barna Biro » Vin Dec 31, 2010 12:52 pm

slyfer scrie:Daca tot e sa trec de la AS 2.0 LA AS 3.0 poate cineva sa-mi dea niste site-uri de unde sa pornesc?

Aproape tot ceea ce ar putea vrea omul, poate fi gasit aici: viewtopic.php?f=10&t=25
( evident, ma refer la cartile in format electronic de pe site-ul postat in link-ul de mai sus )
Imagine
Avatar utilizator
Barna Biro
Administrator
 
Mesaje: 2037
Membru din: Vin Iul 25, 2008 1:06 am
Localitate: Lucerne, Switzerland


Înapoi la ActionScript 2.0

Cine este conectat

Utilizatorii ce navighează pe acest forum: Niciun utilizator înregistrat şi 2 vizitatori

cron