![]() |
|
||||||||||
|
|
|
|||||
|
Регистрация: Jan 2006
Сообщений: 179
|
Есть класс которые отражает изюражения в tile list и ещё добавляет кнопки управлени
package com { import fl.controls.listClasses.CellRenderer; import fl.controls.listClasses.ICellRenderer; import fl.controls.listClasses.ListData; import fl.controls.listClasses.TileListData; import fl.containers.UILoader; import fl.core.InvalidationType; import fl.core.UIComponent; import flash.display.Graphics; import flash.display.Shape; import flash.events.IOErrorEvent; import flash.events.MouseEvent; import flash.display.Sprite; import flash.utils.getDefinitionByName; import flash.display.SimpleButton; [Style(name="selectedSkin", type="Class")] [Style(name="textPadding", type="Number", format="Length")] [Style(name="imagePadding", type="Number", format="Length")] [Style(name="textOverlayAlpha", type="Number", format="Length")] public class ImageCell extends CellRenderer implements ICellRenderer { protected var textOverlay:Shape; protected var loader:UILoader; protected var container:Sprite; private var menu:Sprite; private var deleteB:SimpleButton; private var rightB:SimpleButton; private var leftB:SimpleButton; private static var defaultStyles:Object = { imagePadding:1, textOverlayAlpha:0.5 }; public static function getStyleDefinition():Object { return mergeStyles(defaultStyles, CellRenderer.getStyleDefinition()); } public function ImageCell() { super(); loader = new UILoader(); container = new Sprite(); loader.autoLoad = true; loader.scaleContent = true; container.addChild(loader); addChild(container); var cl:Class = getDefinitionByName("deleteB") as Class; deleteB = new cl(); var cl2:Class = getDefinitionByName("rightB") as Class; rightB = new cl2(); var cl3:Class = getDefinitionByName("leftB") as Class; leftB = new cl3(); deleteB.addEventListener (MouseEvent.CLICK, deleteImage); leftB.addEventListener (MouseEvent.CLICK, turnLeft); rightB.addEventListener (MouseEvent.CLICK, turnRight); } private function deleteImage(event:MouseEvent):void { data.data.action = "delete"; } private function turnLeft(event:MouseEvent):void { data.data.action = "turnLeft"; } private function turnRight(event:MouseEvent):void { data.data.action = "turnRight"; } override public function get listData():ListData { return _listData; } override public function set listData(value:ListData):void { _listData = value; label = _listData.label; var newSource:Object = (_listData as TileListData).source; if (source != newSource) { // Prevent always reloading... source = newSource; } } public function get source():Object { return loader.source; } public function set source(value:Object):void { loader.source = value; } override protected function configUI():void { super.configUI(); textOverlay = new Shape(); var g:Graphics = textOverlay.graphics; g.beginFill(0x66CC99); g.drawRect(0,0,50,50); g.endFill(); } override protected function draw():void { super.draw(); } override protected function drawLayout():void { var imagePadding:Number = getStyleValue("imagePadding") as Number; loader.move(imagePadding, imagePadding); var w:Number = width-(imagePadding*2); var h:Number = height-imagePadding*2; if (loader.width != w && loader.height != h) { loader.setSize(w,h); } loader.drawNow(); // Force validation! if(data.data.menu==true) { menu = new Sprite(); this.mouseChildren=true; textOverlay.x= imagePadding+((width-imagePadding*2-container.width)/2); textOverlay.height = 22; textOverlay.y = imagePadding+((height-imagePadding*2-container.height)/2)+container.height-textOverlay.height; textOverlay.width = container.width; textOverlay.alpha = getStyleValue("textOverlayAlpha") as Number; deleteB.x = textOverlay.x+container.width-26; deleteB.y = textOverlay.y+3; rightB.x = textOverlay.x+31; rightB.y = textOverlay.y+3; leftB.x = textOverlay.x+10; leftB.y = textOverlay.y+3; menu.addChild(textOverlay); menu.addChild(leftB); menu.addChild(rightB); menu.addChild(deleteB); addChild(menu); } else loader.alpha=0.7; } } } TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null". at com::ImageCell() at fl.core::UIComponent/getDisplayObjectInstance() at fl.controls::TileList/drawList() at fl.controls::TileList/draw() at fl.core::UIComponent/callLaterDispatcher() Не приложу всё вроде бы верно а работать не хочет |
|
|||||
|
Регистрация: Jun 2006
Адрес: Москва
Сообщений: 461
|
Ошибка, судя по стеку, у вас в ImageCell... Гляньте, все ли определения классов проходят нормально. Проведите проверку по отдельности (для каждого создания экземпляра), и посмотрите, что у вас вызывает ошибку...
|
![]() |
![]() |
Часовой пояс GMT +4, время: 08:39. |
|
|
« Предыдущая тема | Следующая тема » |
|
|