Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it L'avatar di Cheope
    Registrato dal
    Dec 2003
    Messaggi
    327

    nome dell'oggetto padre in libreria

    Ciao a tutti!

    vorrei sapere se esiste un modo in ActionScript per risalire al nome dell'oggetto padre in libreria di una qualsiasi istanza posizionata sullo stage.
    In pratica quell' "Istanza di ..." che compare nella finestra proprietà selezionando un'istanza.

    Grazie.

  2. #2
    :bubu: Sdeng!

    Spiegati meglio.. :gren:
    Interactive Html/CSS/JS Playground | @webbeloz ( cip..cip! )
    Mechanics & Expert Tuning Fix Z3 Roadster Community

  3. #3
    Utente di HTML.it L'avatar di Cheope
    Registrato dal
    Dec 2003
    Messaggi
    327
    Ok, provo a spiegarmi meglio con un esempio.

    Dunque, prendo un simbolo MC chiamato "padre" dalla libreria e lo trascino sullo stage, creando in tal modo un'istanza di "padre" che vado a chiamare "figlio".
    Nella finestra delle proprietà, se vado a selezionare l'istanza "figlio", mi salterà fuori "istanza di: padre ".

    Esiste in Action Script una proprietà di "figlio" che mi permetta di risalire al nome dell'oggetto genitore presente in libreria, ovvero che mi restituisca "padre"?
    Non so, una sorta di _parent riferito alla libreria e non ai percorsi?

    So che non sto parlando di istanziazioni di classi fatte in programmazione con costruttore new e altre capponate simili, ma di semplici operazioni eseguite in Flash. Però, visto che, ad esempio, per duplicare un Movie Clip devo dare come primo parametro del metodo duplicateMovieClip l'identificatore univoco del simbolo presente in libreria (detto in OOP, il nome della classe da istanziare), probabilmente ci sarà anche il modo per effettuare l'operazione contraria, ovvero risalire dall'istanza al nome del simbolo padre....

    Più che probabilmente ci sarà, diciamo che lo spero con tutto il cuore...

    Spero di essermi spiegato e non incasinato ancor di più.... :bubu:

    Graxie!!

  4. #4
    Utente di HTML.it L'avatar di Cheope
    Registrato dal
    Dec 2003
    Messaggi
    327
    Dimenticavo...
    Uso FLASH MX NON 2004...
    [ Magari in AS2.0 il supporto OOP è più ampio...] :quipy:

  5. #5
    di sicuro c'è il modo..
    così su due piedi e non capendo bene, posso solo dirti che non saprei come risolvere il tuo problema, ma certamente in questo furum qualcuno sa cosa fare! ti suggerisco prima cosa di mettere un'esempio visivo.. oppure del codice..

    sarei curioso di vedere bene cos'è che vuoi fare :gren:

    ciao
    Interactive Html/CSS/JS Playground | @webbeloz ( cip..cip! )
    Mechanics & Expert Tuning Fix Z3 Roadster Community

  6. #6
    quindi a te non interessa il nome dell'istanza "padre" _parent._name

    ma proprio il nome con cui hai salvato l'oggetto nella libreria
    o il nome del linkage utilizzato nella libreria ?

    in entrambi i casi devi sentire qualcun'altro in MX non credo si possa fare.

    ciao

  7. #7
    Utente di HTML.it L'avatar di Cheope
    Registrato dal
    Dec 2003
    Messaggi
    327
    Originariamente inviato da webbeloz
    di sicuro c'è il modo..
    Anch'io credo che non sia niente di trascendentale...
    Però forse si può fare solo se una classe la istanzi da codice con la parolina magica "new"... Eppure concettualmente la libreria è puro OOP, anche se con un'interfaccia grafica...

    Originariamente inviato da webbeloz
    così su due piedi e non capendo bene, posso solo dirti che non saprei come risolvere il tuo problema, ma certamente in questo furum qualcuno sa cosa fare! ti suggerisco prima cosa di mettere un'esempio visivo.. oppure del codice..
    sarei curioso di vedere bene cos'è che vuoi fare :gren:
    ciao
    Mi basterebbe essere in grado di farmi scrivere con un trace() il nome dell'oggetto padre presente in libreria di qualsiasi istanza su cui clicco.... :gren:
    Facile a dirsi. Ma a farsi??? :master:

    Originariamente inviato da rempox
    quindi a te non interessa il nome dell'istanza "padre" _parent._name
    ma proprio il nome con cui hai salvato l'oggetto nella libreria
    o il nome del linkage utilizzato nella libreria ?
    in entrambi i casi devi sentire qualcun'altro in MX non credo si possa fare.
    ciao
    Cos'è il "nome del linkage utilizzato nella libreria"? Scusate l'ignoranza... :quipy:

    Se provo a farmi scrivere il _parent di un'istanza istanziata sullo stage tarmite trascinamento da libreria mi scrive "_level0". Se mi faccio scrivere _parent._name mi scrive "".
    Non so... forse non esiste in ActionScript (o almeno in MX) un modo per interagire con la libreria in andata e ritorno...

    Ma cacchio! Quando modifico un oggetto in libreria, una classe, tutte le istanze figlie cambiano di conseguenza. Il legame padre-figlio non si dissolve con l'istanziazione, ma solo se rilascio le istanze.... Possibile che se chiedo ad un'istanza "Come si chiama il tuo papà", non sa dirmelo? :master:

    Il problema è che sono io a non sapere come chiederglielo ...

  8. #8
    Continuo a non capire bene cosa vuoi comunque se crei un oggetto all'interno della libreria ad esempio un Clip chiamato "figlio"

    lo trascini sullo stage e lo istanzi "pippo"

    se ad esso associ

    onClipEvent(load){trace(_name)}

    ti restituisce "pippo"

    se lo metti dentro un altro clip istanziato "padre"

    e a pippo sostituisci
    onClipEvent(load){trace(_parent._name)}

    ti restituisce "padre"

    se modifichi qualcosa dentro "figlio" ed esso è contenuto in altri N clip, idipendentemente dall'istanza che darai a "figlio" esso risulterà modificato in tutti i punti ove appare.

    Spero di essermi spiegato.

    Ciao


    PS il nome di Linkage si utilizza per l'attachMovie o l'attachSound

    se dalla libreria selezioni un oggetto (es. MP3) tasto destro Linkage
    clicchi su Exprot for Action Script e dai il nome "my sound"

    quel nome lo puoi richiamare mediante l'attachSound

  9. #9
    Utente di HTML.it L'avatar di Cheope
    Registrato dal
    Dec 2003
    Messaggi
    327
    Originariamente inviato da rempox
    Continuo a non capire bene cosa vuoi comunque se crei un oggetto all'interno della libreria ad esempio un Clip chiamato "figlio"

    lo trascini sullo stage e lo istanzi "pippo"

    se ad esso associ

    onClipEvent(load){trace(_name)}

    ti restituisce "pippo"

    se lo metti dentro un altro clip istanziato "padre"

    e a pippo sostituisci
    onClipEvent(load){trace(_parent._name)}

    ti restituisce "padre"

    se modifichi qualcosa dentro "figlio" ed esso è contenuto in altri N clip, idipendentemente dall'istanza che darai a "figlio" esso risulterà modificato in tutti i punti ove appare.

    Spero di essermi spiegato.

    Ciao
    Ti ringrazio, ma non è questo che voglio sapere.
    Quello che cerco di ottenere non è il nome di un'istanza annidata o meno dentro un'altra, o le infinite possibilità date da ereditarietà, polimorfismo ecc.. ma il nome con cui è salvato un simbolo in libreria... :master:
    Vorrei sapere se c'è un modo, nel tuo esempio, per risalire da "pippo" (nome dell'istanza) a "figlio" (nome del simbolo in libreria che per ovvie ragioni avrei chiamato "padre").
    Possibile che non esiste niente, neanche un oggetto collection predefinito stile JavaScript?? Uff...

    Originariamente inviato da rempox
    PS il nome di Linkage si utilizza per l'attachMovie o l'attachSound

    se dalla libreria selezioni un oggetto (es. MP3) tasto destro Linkage
    clicchi su Exprot for Action Script e dai il nome "my sound"

    quel nome lo puoi richiamare mediante l'attachSound
    Quanto hai ragione! Sono solo io lo sfigato che ha comprato la versione in italiano e invece di Linkage si vede scritto "concatenamento"...
    Barbari traduttori...

  10. #10
    Utente di HTML.it L'avatar di Cheope
    Registrato dal
    Dec 2003
    Messaggi
    327

    Porcaloca! Mi sa che non si può proprio fare...

    Ragazzi, ho letto l'interessante capitolo sui Movie Clips del libro "ActionScript for Flash MX" della O'Reilly, chapter 13.
    E mi ha aperto gli occhi...
    Inizia proprio parlando della "objectiveness " dei movie clips, evidenziando proprio il fatto che con MX possiamo interagire in modo object-oriented con i Movie Clips. Ma i Movie Clips NON SONO PROPRIAMENTE OGGETTI , sono un datatype particolare:

    ...We usually treat movie clips just as we treat objects—we set their properties with the
    dot operator; we invoke their methods with the function-call operator (parentheses); and we store them in variables, array elements, and object properties. We do not, however, create movie clips in the same way we create objects. We cannot literally describe a movie clip in our code as we might describe an object with an object literal.
    And we cannot generate a movie clip with the new operator:

    myClip = new MovieClip( ); // Nice try buddy, but it won't work

    Although Flash Player 6 supports the new MovieClip() command, that command establishes a MovieClip subclass ; it cannot be used to create a new movie clip instance in a movie. Instead, we normally create movie clips directly in the authoring tool, by hand. Once a clip is created, we can use commands such as duplicateMovieClip() and attachMovie() to make new, independent duplicates of it. As of Flash Player 6, we can also create a completely new movie clip at runtime with the createEmptyMovieClip()
    method.


    E ancora, quando si parla dei diversi modi di creare Movie Clips, viene detto:

    ...
    Using duplicateMovieClip() offers other advantages over placing clips manually in a movie, such as the ability to:
    • Control exactly when a clip appears on the Stage, relative to a program’s execution
    • Control exactly when a clip is removed from the Stage, relative to a program’s execution
    • Copy a clip’s event handlers
    These abilities give us advanced programmatic control over the content in a movie.
    With a manually created clip, we must preordain the birth and death of the clip using the timeline. .


    E' evidente che esiste una grossa differenza tra l'istanziazione da codice e l'istanziazione manuale da libreria...
    Credevo che la libreria di Flash fosse un concetto altamente object-oriented, una specie di contenitore universale di classi da istanziare... E invece lo è solo moralmente, concettualmente, per comodità... I simboli non sono classi... sarebbe troppo bello...

    Mi sa che quello che voglio io non si può proprio fare...
    Grazie a tutti della solidarietà...
    Andrò a perire...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.