2016-05-16 6 views
0

Ich habe ein Programm, das eine Variable "x" auf die Länge eines zufälligen Wörterbuchs setzt, und dann sollte setzen "a" in ein Feld x Betrag von Zeiten. Ich bin mir jedoch nicht sicher, ob meine Syntax richtig oder falsch ist. Die Variable randomword ist bereits definiert und funktioniert. Meine nicht-funktionierenden Code lautet wie folgt:Wie wiederhole ich eine Zeichenfolge 'x' in Livecode

global x 
    on mouseUp 
     put length(randomword) into x 
     put repeatedString("a",x) into field "wordDisplay" 
    end mouseUp 

Allerdings, wenn ich bei wordDisplay kümmern sich meine Schaltfläche klicken, ist es leer. Eine Erklärung, warum, und Code, um dies zu beheben, wäre wirklich vorteilhaft.

Prost.

Antwort

0

Sie sagen nicht, ob 'repeatedString' eine Funktion ist, die Sie von woanders aus anrufen, aber wenn ich verstehe, was Sie zu tun versuchen, können Sie etwas wie das versuchen, wo Sie 'a' einfügen temporäre Variable:

put length(randomword) into x 
repeat x 
    put "a" after temp 
end repeat 
set text of field "wordDisplay" to temp 

auch dieses ist zu raten, ist der Fall, aber der einzige Grund, warum die globalen zu verwenden ist, wenn man den Wert von x für die Skripte mehrerer Objekte verwenden möge. Wenn Sie in diesem Skript nur 'x' verwenden, brauchen Sie die Variablendeklaration nicht.

+0

Dank! Das sollte mein Problem beheben. – notHalfBad

0

Seite 227 meines Buches „Programming Livecode für das Real- Anfänger“ enthält folgende nützliche Funktion, die genau das tut, was Sie wollen:

function repeatChar theChar,theAmount 
    local myLongString 
    set the itemDel to theChar 
    put theChar into item theAmount of myLongString 
    return myLongString 
end repeatChar 

Beachten Sie, dass eine Wiederholungsschleife nicht erforderlich ist.

die Funktion in Ihrem Skript wie folgt verwendet:

global randomWord 
on mouseUp 
    local x 
    put length(randomWord) into x 
    put repeatChar("a",x) into field "wordDisplay" 
end mouseUp