Приложение розария для Палм пре


Я пытаюсь создать приложение для Palm предварительно. Это молитва приложение, более конкретно приложение розария. Если вы не католик, четки вроде как ожерелье, на который вы расчитываете бусины.

Что я пытаюсь сделать:

  • Вы нажимаете на одну из 4 кнопок для выбора одного из 4 наборов "тайны".
  • Тогда на странице отображается

    • название набор загадок (за исключением отдельных случаев)
    • название индивидуальное тайна
    • молитва, которая идет с ним
    • шарик вы находитесь на
  • Каждая страница имеет кнопку, "следующая бусина", которые вы нажмите, чтобы перейти к следующей молитве и бисера.

Процедура идет как это:

  1. До тайны
    • Апостолы Веры, Отче Наш, три "Аве Мария", слава, и Фатима молитва
  2. Затем, для каждого отдельного загадка

    • Отче наш, десять Аве Мария, слава, и Фатима молитва
    • этот цикл повторите 5 раз для каждой из 5 загадок.
  3. После тайны - Град Святой Королева

Что меня волнует:

  • Во-первых, я не уверен, что у меня самые лучшие настройки для кнопок в начале. С телефон SDK, в телефон придется "слушать" для того, какая кнопка нажата. Я установить это право?

  • Во-вторых, у меня есть все эти заявления, если установить, чтобы выбрать, какие молитвы происходит с которой шарик. Это наиболее эффективный способ сделать это?

Все мысли приветствуются.

<script type="text/javascript">

var chaplet=new Array("The Joyful Mysteries","The Luminous Mysteries","The
                       Sorrowful Mysteries","The Glorious Mysteries");
var mystery=new Array();
mystery[0]=new Array("Annunc","Visit","The Nativ","Present","Temple");
mystery[1]=new Array("Baptism","Wedding", "Kingdom","Transfig","Eucharist");
mystery[2]=new Array("Agony","Scourging","Crowning","Carrying", "Crucif");
mystery[3]=new Array("Resurr","Ascension","Spirit","Assumption","Coronation");
var creed="I believe..."
var ourFather="Hallowed be"
var hailMary="Blessed are thou"
var gloryBe="As it was"
var fatima="Oh my Jesus"
var hailHolyQueen="To thee do we cry"
var dec=0;
var beadCount=0;
var mys=0;
var bead=0;

function nextBead()
{
eventSrcID=(event.srcElement)?event.srcElement.id:'undefined';
if (eventSrcID=='joy') mys=0;
if (eventSrcID=='lum') mys=1;
if (eventSrcID=='sor') mys=2;
if (eventSrcID=='glo') mys=3;

if (beadCount==0)
    {
    div1.innerHTML="Apostles Creed";
    div2.innerHTML="";
    div3.innerHTML="<p>"+creed+"</p>";
    div4.innerHTML="Cross";
    }
else if (beadCount==1)
    {
    div1.innerHTML="Our Father";
    div2.innerHTML="";
    div3.innerHTML="<p>"+ourFather+"</p>";
    div4.innerHTML="Decade 0 Bead "+beadCount;
    };

else if (beadCount<=4)
    {
    div1.innerHTML="For Faith, Hope and Charity";
    div2.innerHTML="";
    div3.innerHTML="<p>"+hailMary+"</p>";
    div4.innerHTML="Decade 0 Bead "+beadCount;
    };

else if (beadCount==5)
    {
    div1.innerHTML="Glory Be";
    div2.innerHTML="";
    div3.innerHTML="<p>"+gloryBe+"</p>";
    div4.innerHTML="Decade 0 Bead "+beadCount;
    };

else if (beadCount==6)
    {
    div1.innerHTML="Fatima Prayer";
    div3.innerHTML="<p>"+fatima+"</p>";
    div4.innerHTML="Decade 0 Bead "+(beadCount-1);
    };

else if (beadCount==72)
    {
    div1.innerHTML="Hail Holy Queen";
    div2.innerHTML="";
    div3.innerHTML="<p>"+hailHolyQueen+"</p>";
    div4.innerHTML="Medal";
    };

else if (beadCount>6 && beadCount<72)   
    {

    div1.innerHTML="<p>"+chaplet[mys]+"</p>";
    div2.innerHTML="<p>"+mystery[mys][dec]+"</p>";

    if (bead==0)
        { 
        div3.innerHTML="<p>"+ourFather+"</p>";
        div4.innerHTML="<p>Decade "+(dec+1)+" Bead "+bead+"</p>";
        };

    else if (bead<=10) 
        {
        div3.innerHTML="<p>"+hailMary+"</p>";
        div4.innerHTML="<p>Decade "+(dec+1)+" Bead "+bead+"</p>";
        };

    else if (bead==11) 
        {
        div3.innerHTML="<p>"+gloryBe+"</p>";
        div4.innerHTML="<p>Decade "+(dec+1)+" Bead "+bead+"</p>";
        };

    else if (bead==12)
        {
        div3.innerHTML="<p>"+fatima+"</p>";
        div4.innerHTML="<p>Decade "+(dec+1)+" Bead "+(bead-1)+"</p>";
        };

    bead++;

    if (bead==13) bead=0;

    if (bead==0) dec=dec+1;

};
beadCount++;
div5.innerHTML="<input type='button' value='Next Bead' onclick='nextBead()' />";
};
</script>
</head>
<body>
<div id="div1">
<input type="button" id="joy" value="The Joyful Mysteries" onclick="nextBead
()" /><br />
</div>
<div id="div2">
<input type="button" id="lum" value="The Luminous Mysteries" onclick="nextBead
()" /><br />
</div>
<div id="div3">
<input type="button" id="sor" value="The Sorrowful Mysteries" onclick="nextBead
()" /><br />
</div>
<div id="div4">
<input type="button" id="glo" value="The Glorious Mysteries" onclick="nextBead
()" /><br />
</div>
<div id="div5">
</div>
</body>    


283
5
задан 9 июня 2011 в 01:06 Источник Поделиться
Комментарии
2 ответа

ИМХО код действительно нужно много работать.


  • Массив использовать литералы для построения массивов:

    var chaplet = ["The Joyful Mysteries","The Luminous Mysteries" /* ... */ ];
    var mystery = [
    ["Annunc","Visit","The Nativ","Present","Temple"],
    ["Baptism","Wedding", "Kingdom","Transfig","Eucharist"]
    // ...
    ];

  • Нет смысла класть строки в переменные, если вы не используете их несколько раз. Там есть пункт, если вы хотите, чтобы интернационализировать приложение. В этом случае положить все строки в структуру данных, которые могут быть легко заменены с различных языков:

    var strings = {
    joyful_mysteries: "The Joyful Mysteries",
    luminous_mysteries: "The Luminous Mysteries",
    // etc.
    };

  • див1, див2и т. д. очень плохой выбор для идентификаторов. Используйте осмысленные имена.

  • Не писать элементы. Оставить их, или использовать их вместо дивs непосредственно в HTML. Если вы используете их для изменения расстояния между элементами, а затем использовать таблицу стилей для этого вместо.

  • Поставить струны для слоев 1 и 2 и бусины одного до семи и див3 для всех бусин в массивы, тоже. И взглянуть не повторяя текстов и кода из 4 дивизиона либо.

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


Редактировать:

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

Также вы, кажется, использовать Интернет модель событий Обозреватель. Я не знаком с Palm Pre, но я сомневаюсь, что он использует модели, т. е. И я считаю, что было бы лучше использовать стандартный типовой дом. Не использовать IE для тестирования, или вы узнаете, что это нестандартное поведение.

10
ответ дан 10 июня 2011 в 09:06 Источник Поделиться

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

1
ответ дан 9 июня 2011 в 09:06 Источник Поделиться