Создание меню и массива, который включает в себя заголовок и имя файла - Javascript / Appcelerator - PullRequest
1 голос
/ 03 декабря 2010

Я не программист по профессии, но больше любитель тинкеров (noob)

Я хочу создать меню из заголовков, содержащихся в массиве.Я сделал это успешно, просматривая массив и используя значение на каждом шаге цикла в качестве заголовка для моих кнопок / вкладок.

Я хочу добавить список событий для каждой кнопки со ссылкой на уникальные страницы,Я намеревался сделать это, проверив метку кнопки, и если это значение A, то он получит соответствующую ссылку и т. Д., А затем назначит ее для currentLink, на который затем ссылается theLink [t] каждый раз, когда он проходит черезloop.

Я думаю, что у меня почти все работает, но я просто потерял динамическое добавление бита ссылки.

Любая помощь будет высоко ценится.

Вот мой код:

//function to check the label name and assign the relevant filename to be passed on
    function winLink(currentTab){
     if (currentTab == 'Audio'){
      currentLink = 'audioPlayer.js';
      pageWin.url = currentLink;

     } else{
      if (currentTab == 'Images'){
      currentLink = 'images.js';
      }
     } 
    }

//function to change button colours according to active button
function button_colour(e){
 if (clickedButton == ''){
  clickedButton = e.source; 
  clickedButton.backgroundImage = tabBckImgSel;

 } else {
  clickedButton.backgroundImage = tabBckImg;
  clickedButton = e.source; 
  clickedButton.backgroundImage = tabBckImgSel;
  }
}


    //Array that contains button names
    var tabsArray =['Audio','Images','Video','Info','Materials','Further Reading','Map'];

//loop through array and create a holder, label and eventlistener to attach
for (var t=0;t<tabsArray.length;t++) {
 //create view to act as button/tab area
 viewButton[t] = Titanium.UI.createView({
  borderWidth:1,
  borderColor: tabBrdrColour,
  width:tabWidth,
  height:tabHeight,
  left:leftTab + padding
 });

 //add the tab to the main menu view/area
 menu.add(viewButton[t]);

 //increment the left position for the next button to be placed to the right of the previous button
 leftTab = viewButton[t].left + tabWidth;

 Buttonlabel[t] = Titanium.UI.createLabel({
  text: tabsArray[t],
  font:{fontSize:13},
  color:'#fff',
  width:labelWidth,
  textAlign:'center',
  height:'auto'
 });

 viewButton[t].add(Buttonlabel[t]);

    //pre declared variable  to hold the title of the current label
 currentTab = tabsArray[t];
//call to function to check label and set the relevant file to load
 winLink(currentTab);

 viewButton[t].addEventListener('singletap', function(e)
  {

  button_colour(e);
  win.add(pageWin);
var theLink[t] = currentLink;
  // alert (' Current link' + currentLink);
 });

}

1 Ответ

0 голосов
/ 03 декабря 2010

Будет ли хеш-таблица тем, что вы ищете? Это позволит вам динамически создавать и использовать эти ссылки.

http://download.oracle.com/javase/1.4.2/docs/api/java/util/HashSet.html

также я бы изменил это ...

  //function to check the label name and assign the relevant filename to be passed on
function winLink(currentTab){
 if (currentTab == 'Audio'){
  currentLink = 'audioPlayer.js';
  pageWin.url = currentLink;
  } else{
  if (currentTab == 'Images'){
  currentLink = 'images.js';
  }
 } 
}

до ...

       //function to check the label name and assign the relevant filename to be passed on
function winLink(currentTab){
 if (currentTab == 'Audio'){
  currentLink = 'audioPlayer.js';
  pageWin.url = currentLink;
  } else if(currentTab == 'Images'){
  currentLink = 'images.js';
  }
 } 

Меня это беспокоило:)

...