Просмотр полной версии : Добавить Video в TileList используя AS
AlexStukoff
11.03.2009, 19:43
Привет всем.
Во Flex я обучающийся, рылся весь день в livedocs, лазил между перекрестными ссылками, много читал про cellRender, itemRenderer, dataProvider и прочую-прочую-прочую. В итоге в голове каша и ЦЕЛЬНОГО представления как-же это все-таки работает так и нету.
Все таки документация и учебник это разные вещи :)
Посему - первое вопроса :)
- кто знает хороший учебник по работе с компонентами в Flex?
И второе вопроса собственно сабж. Если не трудно сопроводите примером :rolleyes:
Заранее спасибо.
PSы. Да, вот еще что. Добавляя в DataProvider объекты описывающие ячейки мы заполняем поля label, data. Далее менее очевидные: source и icon. Дополнительный вопрос - а где-нить вообще описано какие поля понимает TileList? Я просто фиг его знает, может у него есть специальное поле videoSource ?!?!?!?!
CrazyFlasher
11.03.2009, 19:56
файл аппликации
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
[Bindable]
private var videos:ArrayCollection = new ArrayCollection(["video.flv", "video.flv"])
]]>
</mx:Script>
<mx:TileList
rowCount="2"
itemRenderer="VideoItem"
dataProvider="{videos}"
>
</mx:TileList>
</mx:Application>
itemRenderer VideoItem.mxml
<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="400" height="300">
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
]]>
</mx:Script>
<mx:VideoDisplay
source="{data}"
>
</mx:VideoDisplay>
</mx:Canvas>
AlexStukoff
12.03.2009, 11:50
Ну вот, это повторилось. Снова :) :) :)
Спасибо за помощь, но примеров как это сделать через mxml - море бездонное.
Как это сделать в AS-коде?
Т.е. предположим MyTileList это компонент TileList.
var userlistVideo:ArrayCollection = new ArrayCollection();
var myVideo:Video = new Video();
userlistVideo.addItem({label:"Камера"});
MyTileList.itemRenderer = new ClassFactory(MyVideoItemRender);
Соответственно MyVideoItemRender это отдельный класс как я понимаю
package
{
public class MyVideoItem
{
}
}
Ура, ура :) И чего теперь с ним делать? :)
Как прописать itemRenderer и что такое VideoItem в примере? Новый компонент? Новый класс?
itemRenderer класса IFactory. ...The TileList and HorizontalList class use TileListItemRenderer... Cмотрим TileListItemRenderer :) У него есть свойства:
data : Object
The implementation of the data property as defined by the IDataRenderer interface.
listData : BaseListData
The implementation of the listData property as defined by the IDropInListItemRenderer interface.
и защищенные свойства
icon : IFlexDisplayObject
The internal IFlexDisplayObject that displays the icon in this renderer.
label : IUITextField
The internal UITextField that displays the text in this renderer
Круто, не правда-ли? :) В описании черным по белому написано:
You can override the default item renderer by creating a custom item renderer.
Охотно верю, что я могу. Вопрос в том - КАК?!?!?! *бьюсь об стену*
Короче при чтении документации возникает больше вопросов чем ответов. Это как расписать каждую деталь часов, но не объяснить как их соединить вместе чтобы эти часы пошли :)
Объясните кто-нить как это работает, хоть примером, хоть текстом, хоть ссылкой на учебник :) Хоть как-нить :)
†‡Paladin‡†
12.03.2009, 12:00
Почитай этот pdf-ник. Может поможет.
http://www.scribd.com/doc/6901091/flex2createextendcomponents
AlexStukoff
12.03.2009, 12:06
Грац Паладин :) Изучаю :)
Добавлено через 4 часа 39 минут
Но вопрос в любом случае не закрыт, увы :(
И, да, уважаемый CrazyFlasher продемонстрировал подключение flv-видео в статике так сказать, а речь идет о подключении экземпляров класса Video() в динамике.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.