Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > Flex

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 25.05.2013, 17:09
Makkssimka вне форума Посмотреть профиль Отправить личное сообщение для Makkssimka Найти все сообщения от Makkssimka
  № 1  
Ответить с цитированием
Makkssimka

Регистрация: Apr 2013
Сообщений: 18
По умолчанию Удаление элемента из массива через компонент

Доброго времени суток! Заранее прошу прощения возможно за глупый вопрос(я в этом деле начинающий), но все же есть основной файл:
Код AS1/AS2:
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
               xmlns:s="library://ns.adobe.com/flex/spark" 
               xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">
 
    <fx:Script>
        <![CDATA[
            import flash.net.FileReference;
            import flash.net.FileReferenceList;
            import flash.utils.ByteArray;
 
            import mx.collections.ArrayCollection;
            import mx.events.CollectionEvent;
 
            public var  fileRef:FileReferenceList = new FileReferenceList();
            public var imgFilter:FileFilter = new FileFilter("Images", "*.jpg;*.jpeg;*.gif;*.png");
 
 
            public function button1_clickHandler(event:MouseEvent):void
            {
                // TODO Auto-generated method stub
                 fileRef.browse([imgFilter]);
                 fileRef.addEventListener(Event.SELECT, Foto);
            }
 
 
            public function Foto(event:Event):void{
                var files:Array = fileRef.fileList;
 
                for (var i:int = 0; i < files.length; i++) {
                    var file:FileReference = files[i];
                    file.addEventListener(Event.COMPLETE, onLoaded);
                    file.load();
                }
            }
 
            public function onLoaded(event:Event):void{
                var obj:Object = new Object();
                obj.number = imgList.length;
                obj.img = event.currentTarget.data;
                obj.name = event.currentTarget.name;
                obj.size = event.currentTarget.size;
                imgList.addItem(obj);
                var dlinaMass:String = "Количесто фото: "+imgList.length; 
                dlina.text = dlinaMass;
            }
 
 
 
        ]]>
    </fx:Script>
 
 
    <fx:Declarations>
        <!-- Разместить невизуальные элементы (например, службы или объекты значений) -->
        <s:ArrayCollection id="imgList"/>
    </fx:Declarations>
    <s:Panel width="690" height="508" borderVisible="true" horizontalCenter="-19"
             title="Загрузка фотографий" verticalCenter="-19">
        <s:Button x="347" y="445" label="Добавить фото" click="button1_clickHandler(event)" skinClass="spark.skins.spark.ButtonSkin"/>
        <s:List id="fileList" x="10" y="10" width="668" height="409" borderVisible="false"
                dataProvider="{imgList}" itemRenderer="imgComp" textAlign="center">
            <s:layout>
                <s:TileLayout/>
            </s:layout>
        </s:List>
        <s:Label id="dlina" x="10" y="445" width="164" height="21" text="Количество фото: 0"/>
 
            </s:Panel>
</s:Application>
И есть файл компонента:
Код AS1/AS2:
<?xml version="1.0" encoding="utf-8"?>
 
<mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml"
         width="200" height="200" borderAlpha="0.5" borderColor="#B7BABC" borderStyle="none"
         cornerRadius="3" dropShadowVisible="false" horizontalAlign="center" verticalGap="5">   
    <mx:Canvas id="can" x="5" y="5" width="190" height="190" backgroundColor="#F0EFEF" borderAlpha="0.5"
               borderColor="#D7D5D5" borderStyle="solid" contentBackgroundColor="#F1F1F1"
               cornerRadius="8" dropShadowVisible="false" textAlign="left">
        <mx:Label x="12" y="158" width="127" color="#73A9AA" fontFamily="Verdana"
                  fontSize="15" text="{data.name}" textAlign="center"/>
        <mx:Image x="5" y="5" width="178" height="143" autoLoad="true" horizontalAlign="center"
                  includeInLayout="true" scaleContent="true" source="{data.img}"
                  verticalAlign="middle"/>
        <mx:Button x="160" y="160" width="25" height="24" chromeColor="#FFFFFF"
                   cornerRadius="12" focusColor="#FFFFFF"
                   icon="@Embed('../img/delete-icon.png')"/>
 
    </mx:Canvas>
 
</mx:VBox>
В компоненте есть кнопка удаления, как с помощью нее удалить элемент из массива <s:ArrayCollection id="imgList"/> и соответственно с экрана?

Добавлено через 21 час 53 минуты
Почему когда я пишу функцию обработки клика в первом файле, а во втором через слушатель клика посредством outerDocument вызываю данную функцию flash builder выдает ошибку: Обращение несуществующего свойства outerDocument?

Добавлено через 22 часа 46 минут
Все сам разобрался, теперь интересует вопрос как в ArrayCollection (в котором находится объекты), найти индекс элемента массива по свойству объекта?

Создать новую тему Ответ Часовой пояс GMT +4, время: 12:30.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 12:30.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.