快速登录:  

Forum: Greek Forum

话题: ΔΗΜΙΟΥΡΓΙΑ SKIN - Page: 9

由于该帖子的部分内容已年深日久,可能包含陈旧过时或描述错误的信息。

Γιώργο, κατ' αρχήν σ' ευχαριστώ για την άμεση απάντηση. Επί του θέματος...

Το θέμα της "μετακίνησης" έγινε αντιληπτό, οπότε "καταργώντας" toolbar και searchbar, δημιουργώ ένα custombar (στην θέση του searchbar) και όλα ok...

Στο θέμα του menu-button, δεν σε κατάλαβα. Οποιοδήποτε άλλο "απλό" button δημιούργησα λειτουργεί ορθά (π.χ. action="browser_options", action="info_options", κ.τ.λ.), πλην του menu button! Δεν μπορώ να καταλάβω την προϋπόθεση π.χ. για το add_filterfolder : create a new filter folder.
 

发表时间 Tue 26 Mar 19 @ 8:35 am
Κάποιες εντολές προϋποθέτουν οτι το focus του browser είναι στην κεντρική ζώνη (τραγούδια) ή στη sideview ή στο folder tree.
Αυτό που ήθελα να πω παραπάνω είναι να ελέγξεις αν όταν χρησιμοποιείς τις εντολές του menu οι συνθήκες είναι ικανές για να εκτελεσθεί η εντολή.
Δεν βλέπω/ξέρω κανένα άλλο λόγο που οι συγκεκριμένες εντολές να μην "τρέχουν" από μενού αλλά να τρέχουν από button
 

发表时间 Tue 26 Mar 19 @ 8:53 am
Όταν δημιουργήσω ένα μεμονωμένο button με την εντολή π.χ. action="add_filterfolder", αυτή εμφανίζεται - λειτουργεί κανονικά. Όταν οποιαδήποτε εντολή του browser την δώσω μέσω menu, τότε εμφανίζεται το menu και τα texts, αλλά η εκάστοτε εντολή δεν υλοποιείται! Κάποιο bug?
 

发表时间 Tue 26 Mar 19 @ 9:10 am
Δοκίμασε έτσι:

<item text="Add Filter Folder" action="add_filterfolder" />
<item text="Add Virtual Folder" action="add_virtualfolder" />
<item text="Add Favorite Folder" action="add_favoritefolder" />


(Με λίγα λόγια σβήσε το attribute για τα checkmarks αφού είναι αχρείαστα)
 

发表时间 Tue 26 Mar 19 @ 9:21 am
Nope... Ούτε έτσι... :-(
 

发表时间 Tue 26 Mar 19 @ 9:37 am
Τελικά οι εντολές αυτές εκτελούνται κατά το "UP" (δοκίμασε το σε ένα κουμπί)
Τα μενού στέλνουν μόνο "DOWN" και γι αυτό αυτές οι εντολές δεν εκτελούνται. Αναφέρθηκε, και κάποια στιγμή θα διορθωθεί.
 

发表时间 Tue 26 Mar 19 @ 9:52 am
Ναι, σε μεμονωμένα buttons λειτουργούν κανονικά... Οπότε ξεχνάω προς το παρόν το menu button και προσανατολίζομαι σε ξεχωριστά buttons για κάθε περίπτωση...

Ευχαριστώ!
 

发表时间 Tue 26 Mar 19 @ 9:55 am
Γιώργο, το Search Field πώς το δημιουργούμε? Λογικά το script είναι το search, αλλά από κει και πέρα πώς γίνεται η συνολική διαμόρφωση του definition και πώς το "καλούμε" κατόπιν?
 

发表时间 Tue 26 Mar 19 @ 10:54 am
Άντε πάλι τα ίδια... :P

<define class="MySearchBox>
<pos x="0" y="50"/>
<size width="100" height="20"/>
<font size="20" name="Arial"/>
<colors background="#1F1F1F" border="#7A7A7A" selected="#717171" text="#FFFFFF" cursor="#FFFFFF"/>
</define>

<edit class="MySearchBox"/>

http://www.virtualdj.com/wiki/Skin%20Edit.html
 

发表时间 Tue 26 Mar 19 @ 1:42 pm
Μην ξενερώνεις δάσκαλε... Σήμερα δεν είχα δουλειά, ασχολούμαι απ' το πρωί με το skin και το κεφάλι μου έχει γίνει κουδούνι... Δεν σκέφτηκα καν να κοιτάξω στο site για το συγκεκριμένο element...
 

发表时间 Tue 26 Mar 19 @ 4:42 pm
Μερικές ακόμα διευκρινήσεις, επί του κώδικα…

1. RIGHT CLICK

Έχω το ακόλουθο button:

<define class="lbl_Channels" action="cycle 'Channel_Variation' 2" rightclick="action_deck 1 ? deck 3 leftdeck : action_deck 2 ? deck 4 rightdeck : action_deck 3 ? deck 1 leftdeck : action_deck 4 ? deck 2 rightdeck : nothing">
<size width="80" height="16"/>
<text font="Calibri" size="16" align="center" scroll="no" weight="bold" color="`param_equal 1 get_deck ? color 'blue' : param_equal 2 get_deck ? color 'red' : param_equal 3 get_deck ? color 'green' : param_equal 4 get_deck ? color 'yellow'`" action="param_equal 1 get_deck ? get_text 'CHANNEL 1' : param_equal 2 get_deck ? get_text 'CHANNEL 2' : param_equal 3 get_deck ? get_text 'CHANNEL 3' : param_equal 4 get_deck ? get_text 'CHANNEL 4'"/>
<tooltip>Channel\nLC: Change Variation\nRC: Change Channel</tooltip>
</define>

Το πρόβλημα είναι ότι εάν το rightclick γίνει γρήγορα, τότε το button το λαμβάνει ως doubleclick και πραγματοποιεί cycle στο variation του channel. Υπάρχει κάποια λύση γι αυτό?

2. GET LIMITER

Έχω το ακόλουθο text:

<define class="lbl_Level_Mic_Clip">
<size width="18" height="14"/>
<text font="Calibri" size="14" align="center" scroll="no" weight="bold" color="`get_limiter 'mic' ? color 'magenta' : color '#808080'`" action="get_limiter 'mic' ? get_text 'CLIP' : get_text 'CLIP'"/>
</define>

Το πρόβλημα είναι ότι το κείμενο ‘CLIP’ αλλάζει χρώμα όταν έχω limiting στο master! Το αυτό και στην περίπτωση: get_limiter 'sampler'. Τι έχω κάνει λάθος?

3. KEY / HARMONIC COLOR

Έχω το ακόλουθο text:

<define class="txt_Get_Loaded_Song_Harmonic">
<size width="80" height="30"/>
<text font="LCD" size="30" align="center" scroll="no" weight="bold" color="#c0c0c0" action="get_loaded_song harmonic"/>
<tooltip>Media Key/Harmonic</tooltip>
</define>

Ποιος είναι ο κώδικας, ώστε το text να λαμβάνει το χρώμα του Key/Harmonic, όπως ακριβώς στην στήλη Key του Browser?

4. ADD FAVORITE FOLDER

Έχω το ακόλουθο button (σε custom browser):

<define class="btn_Add_Favorite_Folder" action="add_favoritefolder">
<size width="30" height="20"/>
<up x="1370" y="1690"/>
<over x="1370" y="1715"/>
<selected x="1370" y="1740"/>
<tooltip>Add Favorite Folder</tooltip>
</define>

Το πρόβλημα είναι ότι όταν στον Browser βρίσκομαι σε Favorite Folder, το button δείχνει “ενεργοποιημένο” – selected. Γιατί συμβαίνει αυτό?

5. KNOB DEFAULT

Δημιούργησα ένα knob με action="mic_volume”

Τί θα πρέπει να προσθέσω στον κώδικα, ώστε η default τιμή του (όταν ανοίγει) το VDJ, να είναι π.χ. 0?

6. WINDOW

Δημιούργησα το κάτωθι window:

<window name="Custom_Buttons_Window" width="1910" height="55" posx="5" posy="1080-100" shown="false" resize="false">
<background x="0" y="0"/>
<button class="btn_Custom_Button_10" x="+10" y="+10"/>
</window>

Το οποίο και το “καλώ” μέσω σχετικού button:

<define class="btn_Custom_Button_Page" action="show_window 'Custom_Buttons_Window'">
<size width="65" height="20"/>
<up x="1265" y="1765"/>
<over x="1265" y="1790"/>
<down x="1265" y="1815"/>
<tooltip>Custom Buttons Window</tooltip>
</define>

6.1. Κατ’ αρχήν δοκίμαζα αρχικά να μην προσθέσω το: resize="false", έκανα κάποιες δοκιμές resizing, αλλά κατόπιν δεν μπορούσα να βρω τρόπο να κάνω reset τις διαστάσεις του window. Ακόμη και όταν έκλεισα και άνοιξα ξανά το VDj, το παράθυρο εμφανιζόταν resized!

6.2. Δημιούργησα ένα 2ο window (με άλλη ονομασία) και όλα καλά. Όταν όμως διαγράφω τον κώδικα του 1ο window, τότε το 2ο window εμφανίζεται αυτόματα resized (όπως το 1ο).

Κάποιο bug?
 

发表时间 Fri 05 Apr 19 @ 7:18 am
1. Όχι

2. Στην περιγραφή της εντολής get_limiter δεν βλέπω πουθενά να δέχεται σαν όρισμα το "mic" ή το "sampler". Αντίθετα δέχεται το "master", "headphones" και "booth"
Εσύ πως κατέληξες στο get_limiter 'mic' ?

3. color="`get_key_color`"

4. Αυτό συμβαίνει γιατί όλα τα buttons εξ ορισμού χρησιμοποιούν την εντολή τους και σαν query.
Για να μην ανάβει, είτε δίνεις τα ίδια γραφικά για on/off είτε προσθέτεις ένα δικό σου query στο definition:
<define class="btn_Add_Favorite_Folder" action="add_favoritefolder" query="nothing">

5. Δεν υπάρχει "default" τιμή για τα knobs. Τα knobs, sliders κτλ παίρνουν την τιμή της εντολής που χρησιμοποιούν. Στην προκειμένη περίπτωση το knob θα πάρει την τιμή της έντασης του μικροφώνου. Για να "αλλάξει" θα πρέπει να αλλάξει και η ένταση του μικροφώνου, κάτι που μπορείς να κάνεις με το <oninit> στο skin, αλλά είναι ΚΑΚΙΣΤΗ πρακτική καθώς εκτελείται και σε skin refresh/reload και γενικά μπορεί να πιάσει τον τελικό χρήστη απροετοίμαστο.

6. Αν τα παράθυρα έχουν το ίδιο όνομα, όχι δεν είναι Bug. Και οι διαστάσεις των παραθύρων αποθηκεύονται στο settings.xml

 

发表时间 Fri 05 Apr 19 @ 8:36 am
PhantomDeejay wrote :
2. Στην περιγραφή της εντολής get_limiter δεν βλέπω πουθενά να δέχεται σαν όρισμα το "mic" ή το "sampler". Αντίθετα δέχεται το "master", "headphones" και "booth". Εσύ πως κατέληξες στο get_limiter 'mic' ?
Το πήγα λίγο παρακάτω... :-) Πάντως, καλό θα ήταν να ενσωματωθούν και αυτές οι παράμετροι στο limiter...

PhantomDeejay wrote :
Αν τα παράθυρα έχουν το ίδιο όνομα, όχι δεν είναι Bug. Και οι διαστάσεις των παραθύρων αποθηκεύονται στο settings.xml
Ο κώδικας έχει ως ακολούθως:

<group name="Windows">
<window name="Custom_Button_Window" width="300" height="50" posx="5" posy="1080-400" shown="false">
<background x="0" y="0"/>
<button class="btn_Custom_Button_10" x="+10" y="+10"/>
</window>
<window name="Custom_Buttons_Window" width="1910" height="55" posx="5" posy="1080-100" shown="false" resize="false">
<background x="0" y="0"/>
<button class="btn_Custom_Button_10" x="+10" y="+10"/>
<button class="btn_Custom_Button_11" x="+80" y="+10"/>
</window>
</group>

Και το button:

<define class="btn_Custom_Button_Page" action="show_window 'Custom_Buttons_Window'">
<size width="65" height="20"/>
<up x="1265" y="1765"/>
<over x="1265" y="1790"/>
<down x="1265" y="1815"/>
<tooltip>Custom Buttons Window</tooltip>
</define>

Όπως βλέπεις, "καλώ" το ...Buttons... και εμφανίζεται ορθά. Όταν όμως πάω και διαγράφω απ' τον κώδικα το 1ο window definition (...Button...), τότε το 2ο (...Buttons...) εμφανίζεται resized, όπως ήταν το 1ο!!!
 

发表时间 Fri 05 Apr 19 @ 9:02 am
Συγνώμη, οι διαστάσεις των παραθύρων δεν αποθηκεύονται με βάση το όνομα τους, αλλά με βάση τη σειρά τους.
Οπότε απλά σβήσε τα περιεχόμενα της γραμμής skinPosition στις ρυθμίσεις και κάνε επανεκκίνηση του VirtualDJ
 

发表时间 Fri 05 Apr 19 @ 10:33 am
Όλα τέλεια! Ευχαριστώ...
 

发表时间 Fri 05 Apr 19 @ 10:45 am
Ακόμη ένα "σεντόνι"... Ελπίζω το τελευταίο...


Επιθυμώ το εκάστοτε Channel να έχει παραλλαγές (variations) του layout του.

A. Δημιούργησα ένα textzone, το οποίο "λειτουργεί" (τρόπον τινά) ως button:

<define class="lbl_Channels" action="cycle 'Channel_Variation' 2" rightclick="action_deck 1 ? deck 3 leftdeck : action_deck 2 ? deck 4 rightdeck : action_deck 3 ? deck 1 leftdeck : action_deck 4 ? deck 2 rightdeck : nothing">

B. Κατόπιν δημιούργησα τα Variations. Επειδή τα Layouts απεικονίζονται ως mirror, κατέληξα στον κάτωθι τρόπο:

<define class="Channel_Variation_A_Left" visible="var_equal 'Channel_Variation' 0">... ... ...</define>
<define class="Channel_Variation_A_Right" visible="var_equal 'Channel_Variation' 0">... ... ...</define>
<define class="Channel_Variation_B_Left" visible="var_equal 'Channel_Variation' 1">... ... ...</define>
<define class="Channel_Variation_B_Right" visible="var_equal 'Channel_Variation' 1">... ... ...</define>

C. Και οι "κλήσεις" τους:

<panel class="Channel_1" x="730" y="195" visible="deck 1 leftdeck">
<deck deck="1">
<panel class="Channel_Variation_A_Left" x="+0" y="+0"/>
<panel class="Channel_Variation_B_Left" x="+0" y="+0"/>
</deck>
</panel>

<panel class="Channel_2" x="1040" y="195" visible="deck 2 rightdeck">
<deck deck="2">
<panel class="Channel_Variation_A_Right" x="+0" y="+0"/>
<panel class="Channel_Variation_B_Right" x="+0" y="+0"/>
</deck>
</panel>

<panel class="Channel_3" x="730" y="195" visible="deck 3 leftdeck">
<deck deck="3">
<panel class="Channel_Variation_A_Left" x="+0" y="+0"/>
<panel class="Channel_Variation_B_Left" x="+0" y="+0"/>
</deck>
</panel>

<panel class="Channel_4" x="1040" y="195" visible="deck 4 rightdeck">
<deck deck="4">
<panel class="Channel_Variation_A_Right" x="+0" y="+0"/>
<panel class="Channel_Variation_B_Right" x="+0" y="+0"/>
</deck>
</panel>


Μέχρι εδώ, όλα δουλεύουν όπως πρέπει!


D. Δημιούργησα ένα menu button, ώστε (πέραν όλων των άλλων) να αλλάζω "καθολικά" το layout των channels:

<define class="btn_Menu_Skin">
...
<submenu text="Channels">
<item text="Layout A" action="set '$Channel_Variation' 0" hascheck="true"/>
<item text="Layout B" action="set '$Channel_Variation' 1" hascheck="true"/>
</submenu>
...
</define>

Με αυτή τη σύνταξη, δεν κάνει απολύτως τίποτε! Δοκιμάζω και την ακόλουθη (χωρίς $):

<define class="btn_Menu_Skin">
...
<submenu text="Channels">
<item text="Layout A" action="set 'Channel_Variation' 0" hascheck="true"/>
<item text="Layout B" action="set 'Channel_Variation' 1" hascheck="true"/>
</submenu>
...
</define>

...και αλλάζει μόνο το layout του Left Channel!!!


Ερωτήσεις:

1. Υπάρχει "καλύτερος" τρόπος, γι αυτό που κάνω στο ?

2. Τι κάνω λάθος και δεν λαμβάνω το αποτέλεσμα που θέλω στο #D?


Ευχαριστώ...

 

发表时间 Mon 15 Apr 19 @ 4:40 pm
djdadPRO InfinityDevelopment ManagerMember since 2005
Τα variations είναι ανεξάρτητα, δλδ μπορεί νσ έχεις άλλο variation στο αριστερο Α, και άλλο στο δεξί Β ?

Οι μεταβλητές πρέπει να έιναι ακριβώς το ίδιο όνομα.
<define class="Channel_Variation_A_Left" visible="var_equal '$Channel_Variation' 0">
<item text="Layout A" action="set '$Channel_Variation' 0" hascheck="true"/>

ή αν πας σε per-deck μεταβλητές (χωρις το $) , χρειάζεσαι deck x .. μπροστά από τα actions

Ιδανικά, θέλεις και η επιλογή να αποθηκεύεται και στο επόμενο άνοιγμα, άρα καλύτερα να χρησιμοποιησεις persistent variables πχ.
'@$Channel_Variation'
 

发表时间 Mon 15 Apr 19 @ 5:23 pm
Σε ευχαριστώ για την άμεση απάντηση. Να το εξηγήσω και αλλιώς...

Θέλω, απ το textzone ("lbl_Channels") του εκάστοτε channel, με αριστερό click, να αλλάζω το layout του κάθε channel ξεχωριστά. Συνεπώς, την ίδια στιγμή, το Channel 1 να μπορεί να απεικονίζεται με το Variation A και το Channel 2 να μπορεί να απεικονίζεται με το Variation Β.

Αυτό γίνεται, με τον άνωθεν κώδικα. Από κει και πέρα...

Θέλω από το menu button να αλλάζω το layout του κάθε Channel ταυτόχρονα. Συνεπώς, εάν επιλέγω το Variation A, αυτό να εφαρμόζεται και στο Channel 1 και στο Channel 2. Αυτό είναι που δεν καταφέρνω!

Και φυσικά, εάν το επιτύχω αυτό, θα το εφαρμόσω και στο Layout των Decks...

 

发表时间 Mon 15 Apr 19 @ 6:09 pm
djdadPRO InfinityDevelopment ManagerMember since 2005
Αν θες να αλλάζουν ταυτόχρονα, χρησιμοποιήσε global ($) variables, και τα views όλων των channels, να χρησιμοποιούν την ίδια μεταβλητή στο visibility

Επίσης μπορείς σε ένα panel , όταν το καλεις, να τσεκάρεις 2 μεταβλητές, που μπορεί ας πουμε να έχει σχέση με το Deck Layout kai to Channel layout.
Π.χ. <panel visibility="var_equal 'Deck_Layout' 2 ? var_equal '$Channel_Layout' 1 ? true : false"> pos καπου </panel>
<panel visibility="var_equal 'Deck_Layout' 1 ? var_equal '$Channel_Layout' 1 ? true : false"> pos ..καπου αλλού </panel>
 

发表时间 Mon 15 Apr 19 @ 6:28 pm
Μπορείς να μου το "μεταφέρεις" αυτό επί του άνωθεν κώδικα? Τι θα πρέπει να αλλάξω δηλαδή?
 

发表时间 Mon 15 Apr 19 @ 6:32 pm
48%