0

Sencha Touch2でiFrameYoutubeビデオを削除するために、hideイベントで要素(パネル)のHTMLを設定するのに問題があります。

呼び出されているhide関数にExt.Msg.alertがあり、それが機能しているため、hideイベントが機能していて呼び出されていますが、非表示でビデオを停止できません。

これが私のパネルコードです:

Ext.define('TCApp.view.MyPanel0', {
extend: 'Ext.Panel',
alias: 'widget.mypanel0',

config: {
    hideOnMaskTap: true,
    scrollable: false,
    items: [
        {
            xtype: 'panel',
            html: '<iframe width="560" height="315" src="http://www.youtube.com/embed/-gv9RicOHNQ" frameborder="0" allowfullscreen></iframe>',
            itemId: 'videopanel',
            hideOnMaskTap: true
        }
    ]
}

});

私のコントローラーにはこれがあります:

Ext.define('TCApp.controller.MyController', {
extend: 'Ext.app.Controller',
config: {
    control: {
        "#dataview": {
            itemtap: 'onDataviewItemTap'
        },
        "mypanel0": {
            hide: 'onVideopanelHide'
        }
    }
},

など…</p>

この:

onVideopanelHide: function(component, options) {
    Ext.Msg.alert('Test onhide event');  <-- working hide event called

    Ext.getCmp('videopanel').setHtml("");
    Ext.getCmp('videopanel').setHtml('<div id="video1"><iframe width="560" height="315" src="http://www.youtube.com/embed/NSUucup09Hc?fs=1&amp;hl=en_US&amp;rel=0&autoplay=0" frameborder="0" allowfullscreen></iframe></div><img src="resources/images/thapelo3Fy.jpg" />');

}

Ext.getCmpは機能していませんが、エラーが発生します:'TypeError:' undefined'はオブジェクトではありません(' Ext.getCmp(' videopanel')。setHtml'を評価しています) '

HTMLを設定しようとしているパネルのitemidは「ビデオパネル」であるため、何が問題なのかわかりません。何か案は?

まだ非表示イベントでiFrameYoutubeビデオを再生しているので、完全に削除したいと思います。

'Ext.getCmp(' videopanel')。destroy();'も試しました。しかし、上記と同じエラーが発生します。itemidをvideopanelとして設定しているだけで、他のIDは設定していません…</ p>

助けてくれてありがとう…</p>

4

1 に答える 1

1

ねえ@DigeridoopooMyPanel0への変更は1つだけです。

あなたのコード

itemId: 'videopanel',

に:

id: 'videopanel',

私はあなたのバージョンをonVideopanelHideコントローラーのメソッドにこのようなコードを作成しました。

Ext.define('myapp.view.MyPanel0', {
   extend: 'Ext.Panel',
   xtype: 'mypanel0',

   config: {
      hideOnMaskTap: true,
      scrollable: false,
      items: [
        {
           xtype: 'panel',
           html: '<iframe width="560" height="315" src="http://www.youtube.com/embed/-gv9RicOHNQ" frameborder="0" allowfullscreen></iframe>',
           id: 'videopanel',
           hideOnMaskTap: true
        }, {html: '<br/>'},
        {
           xtype: 'button',
           text: 'Change Video',
           width: '55%',
           handler: function() {
               Ext.getCmp('videopanel').setHtml('')
               Ext.getCmp('videopanel').setHtml('<div id="video1"><iframe width="560" height="315" src="http://www.youtube.com/embed/NSUucup09Hc?fs=1&amp;hl=en_US&amp;rel=0&autoplay=0" frameborder="0" allowfullscreen></iframe></div><img src="app/images/home.png" />')
           }
        }, {html: '<br/>'},
        {
          xtype: 'button',
          text: 'Video Stop',
          width: '55%',
          handler: function() {
              Ext.getCmp('videopanel').hide()
          }
        }
     ]
  }
});

これがお役に立てば幸いです。:)

ここに画像の説明を入力してください

ここに画像の説明を入力してください

ここに画像の説明を入力してください

于 2012-07-14T07:26:27.113 に答える