2013-05-20 2 views
0

У меня есть сценарий в стеке под названием «загрузчик», и я хочу создать новую карту в другом стеке под названием «theData». Если я просто использую create card, карты создаются в стеке «загрузчик». Как указать, что новая карта создается в стеке «theStackName»?Как создать новую карту в другом стеке?

Что-то вроде

on mouseUp 
    put field "theStackName" into tStack 

    create stack tStack with background "BGdata" 
    -- the background "BGdata" which has been defined before 
    -- contains a field "data" 

    set the defaultStack to tStack 

    put "something" into field "data" 

    create card 
    put "somethingElse" into field "data" 
end mouseUp 
+1

это должно помочь вам http://lessons.runrev.com/m/4071/l/11787 –

ответ

2

несколько способов сделать это, все с помощью команды create card.

Метод 1

Вы можете перейти к целевой стек, возможно, блокировки экрана, так что ничего не меняется заметно, и создать карту там. Это имеет то преимущество, что вы можете создать новую карту в любом месте целевого стека, у которого может быть уже несколько карт. Если вы захотите, вы можете вернуться в свое начальное место.

или вы можете:

Метод 2

set the defaultStack to "theData" 
create card 

Вроде то же самое.

+0

Метод 1 и метод 2 работают нормально. –

1

Откуда взялось поле данных? Он не будет присутствовать во вновь созданном стеке.

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

Я предполагаю, что ваша ошибка была что-то вроде:

ошибку выполнения ... (Chunk: нет такого объекта) вблизи "данных".

Если вы создаете новые стеки, а также новые карты в удаленном стеке, хорошо и хорошо. Поэкспериментируйте со всем этим. Напишите назад, если вы застряли.

Craig Newman

+0

Да, ошибка была чем-то вроде «ошибки выполнения ... (Chunk: нет такого объекта) рядом с« данными ».« Решение состояло в том, чтобы назвать фон иначе, чем поле «данные», содержащиеся внутри. Теперь работают оба метода, упомянутые в первом ответе! Спасибо! –

0

Насколько мне известно, нет никакого способа, чтобы создавать объекты в штабеля, не будучи в этом стеке. Я хотел бы сделать что-то вроде этого после того, как вы создали новый стек:

push card 
lock messages 
lock screen # optional but probably a good idea 
go invisible stack "mynewstack" 
create card "foo" 
# at this point you'll be on that card 
create field "data" 
put "stuff" into field "data" 
group field "data" 
set the name of field "data" to "bgData" 
pop card 
unlock messages 
unlock screen 

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

+0

Метод 2 Craig Newman 'устанавливает значение по умолчаниюStack для« theData »' отлично работает. Я не знаю, считается ли это «быть в этом стеке» или нет. –

Смежные вопросы