Проблема предварительного просмотра скина Minecraft - PullRequest
0 голосов
/ 30 августа 2011

По другому вопросу вы можете просмотреть свой скин с помощью этого кода:

<applet code="net.minecraft.skintest.ModelPreviewApplet"
        archive="http://www.minecraft.net/skin/skintest.jar" codebase="."
        width="320" height="320">
    <param name="name" value="535" />
</applet>

Что работает!

Но кто-нибудь знает, как я могу создать текстовое поле и кнопку, которая помещает написанный текст в тег value="535" (заменяет "535" на ввод текстового поля)?

Ссылка на другой вопрос: Существует ли веб-приложение для предварительного просмотра скина?

Ответы [ 2 ]

0 голосов
/ 30 августа 2011

Вы можете написать свой апплет в DOM во время выполнения, как это:

<div id="wrapper"></div>
<input type="text" value="" onchange="writeApp(this.value)">
<input type="button" value="go">

<script type="text/javascript">
function writeApp(pVal) {
     document.getElementById('wrapper').innerHTML = '<applet  code="net.minecraft.skintest.ModelPreviewApplet"  archive="http://www.minecraft.net/skin/skintest.jar" codebase="."  width="320" height="320"><param name="name" value="'+pVal+'" /></applet>'   
}   
</script>

Как ни странно, апплету не нравятся значения, отличные от "525"

0 голосов
/ 30 августа 2011

Это должно быть легко, но я не думаю, что это будет делать то, что вы хотите.

Я предполагаю, что вы хотите иметь окно предварительного просмотра с предварительным просмотром текстуры, и позволить пользователям вводить новые идентификаторы текстуры, нажимать кнопку и сразу же просматривать предварительный просмотр.

Простое изменение значения param после загрузки страницы не приведет к этому.

Когда кнопка нажата, вам нужно удалить applet и заново создать его с новым значением параметра, чтобы изменения вступили в силу.

Вот код, который вы просили:

<applet
        code="net.minecraft.skintest.ModelPreviewApplet"
        archive="http://www.minecraft.net/skin/skintest.jar" codebase="."
        width="320"
        height="320">
    <param name="name" id="previewName" value="535" />
</applet>

<input type="text" id="newValue" />

<script>
document.getElementById('newValue').onblur = function(event) {
    // grab value
    var iVal = parseInt(this.value);
    if(!iVal && iVal !== 0) return;

    // update param
    document.getElementById('previewName').value = iVal;
    return true;
};
</script>

Если вы попробуете это, и оно не достигнет желаемого, дайте мне знать, и я смогу написать код, который сделает это.

...